首页 新闻 会员 周边

asp.net关于$.post

0
[已解决问题] 解决于 2012-08-10 17:45

页面代码:

1 function hw1()
2         {
3             $.post(
4                 "WebService1.asmx/HelloWorld1", { "name": "小黎hw", "age": "18" }, function(result) {
5                     //alert(result);
6                     alert(result.d);
7                 }, "json");
8         }

webservice的代码:

[System.Web.Script.Services.ScriptService]
    public class WebService1 : System.Web.Services.WebService
    {

        [WebMethod]
        public string HelloWorld1(string name,int age)
        {
            return "Hello World1   " + name + ",   age: " + age;
        }

确实有返回值,但是为什么alert弹不出来?

AaronLi的主页 AaronLi | 初学一级 | 园豆:41
提问于:2012-08-10 15:35
< >
分享
最佳答案
0

webService默认返回的是XML格式,在.net2.0中如果想让webService返回JSON格式比较麻烦,你可以参考这篇文章:

http://www.cnblogs.com/penbox/archive/2011/10/13/2210726.html

.NET 3.5以后WebService中内置了JSON格式,但要把请求的Accept和Content-Type设置为JSON格式,然后在JS中用result.d获取(result为返回值)。

所以你的代码可以这样修改:

1、用XML格式:

function hw1()
{
      $.post("WebService1.asmx/HelloWorld1", { "name": "小黎hw", "age": 18 }, function(result) {
             alert(result);
       }, "xml");
}

这种写法请求头为:

2、用JOSN格式:

function hw1() {
    $.ajax({
        url: "WebService1.asmx/HelloWorld1",
        data: '{"name":"小黎hw","age": 18 }',
        type: "post",
        dataType: "json",
        contentType: "application/json; charset=utf-8",
        success: function (result) {
            alert(result.d);
        }
    });
}

这种写法请求头为:

奖励园豆:5
artwl | 专家六级 |园豆:16736 | 2012-08-10 15:56

弹出的是[object]啊、不行啊

AaronLi | 园豆:41 (初学一级) | 2012-08-10 16:10

@xiao黎: 因为XML没有解析,当然是Object啦

artwl | 园豆:16736 (专家六级) | 2012-08-10 16:12

webService返回的不都是json格式吗?我是参考这个网上面写的http://www.w3school.com.cn/jquery/ajax_post.asp

AaronLi | 园豆:41 (初学一级) | 2012-08-10 16:13

@xiao黎: 当然不是啦,webservice默认返回的是XML格式

artwl | 园豆:16736 (专家六级) | 2012-08-10 16:14

@artwl: 哦,那为什么用开始的那个格式不行了?ashx一般处理程序可以这样写的啊,写得简单好多。

AaronLi | 园豆:41 (初学一级) | 2012-08-10 16:17

@xiao黎: 返回的是XML格式,你用JSON格式接收,当然不行啦

artwl | 园豆:16736 (专家六级) | 2012-08-10 17:34
其他回答(1)
0

用chrome的开发者工具,看下你的代码返回的json格式,是不是真的有个d。

chenping2008 | 园豆:9836 (大侠五级) | 2012-08-10 16:20

好像是这样的:

<?xml version="1.0" encoding="utf-8"?>
<string xmlns="http://tempuri.org/">Hello World1 小黎hw, age: 18</string>
支持(1) 反对(0) AaronLi | 园豆:41 (初学一级) | 2012-08-10 16:27

@xiao黎: 你的这个是xml格式的,不是json的,网上找个jquery ajax 调用 web service的例子。

支持(0) 反对(0) chenping2008 | 园豆:9836 (大侠五级) | 2012-08-10 18:43
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册