ajax处理返回的xml数据,使用AJAX调用WebService返回xml不返回json原因以及解决办法...

初次尝试用AJAX调用webservice,结果无论怎么设置webservice返回的都是xml对象,一般的jquery处理json是更方便的。

webservice理论上将下面这段代码按照说明取消注释,就可以返回json数据了。

// 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消注释以下行。

[System.Web.Script.Services.ScriptService]

webservice是可以自动在xml和json当中自由切换的,当使用json请求的时候返回的数据就会是json,但我多次尝试一直返回xml,最后我终于找到下面这篇文章: jQuery调用WebService返回JSON数据

原来在jquery中,如果Content-Length为0或者没有设置,它会忽略你设置的contentType,WebService就不知道我们需要JSON格式的数据,它就返回了默认的XML格式的数据给我们。

解决办法也简单,就是设置一下data参数,或者用BeforeSend重设一下contentType。如下:

$.ajax({

url: "WebService1.asmx/WS1",

type: "POST",

dataType: "json",

data: "",

beforeSend: function(x) {

x.setRequestHeader("Content-Type", "application/json; charset=utf-8");

},

success: function(json) {

alert(json.d);

},

error: function(x, e) {

alert(x.responseText);

},

complete: function(x) {

alert(x.responseText);

}

});

这样,就可以返回json数据了!

(完)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值