怎样将webservice服务发出的数据转为Json格式的
你把webservice的返回值写成json格式的字符串,然后在js里面通过ajax调用,具体的webservice就不写了,相信你会的,这里只写调用方法。$.ajax({ contentType:"application/json" url:url(调用webservice的方法的地址), type:"post", data:"{value1:'value',value2:'value'}",//这里是webservice中需要的参数,如果不需要参数,可以把花括弧中清空,但是还是要这一行的,否则会有问题。
dataType:"json", success:function(data){ try{ var json = eval("("+data+")");//这里解析json字符串} catch(ex){ alert('error') } } })记住,如果想得到json字符串,webservice中的方法的返回值必须是json字符串类型,否则解析的时候报错
解决ajax回调函数返回的字符串乱码问题
找到问题了:
1、ajax请求失败,提示parsererror(到complete回调函数里看),所以不会执行success回调函数;
2、parsererror也就是说明数据解析出错了,也就是返回的数据格式有问题。post请求设置的格式是json,实际上返回的不是json;
实际返回的数据如下:
注意红色的部分,数据被压缩过了,当作json解析自然会出错;
3、如果把 post请求最后的 ‘json’ 参数去掉,会发现可以进入 success 回调函数,但此时response是个字符串而不是js对象,而且开头好像还有两个乱码,response.contents 成了 undefined。
--------
所以问题根源是:
服务端返回的是gzip压缩后的数据,不是json字符串。
问题就是这样的,解决方法考题主自己了。json传查询条件页面用ajax怎样请求
1、Client端组织好Jason数据2、发送请求$.post("Ajax.aspx", { Action: "post", Name: "lulu" }, function (data, textStatus){ // data 可以是 xmlDoc, jsonObj, html, text, 等等. //this; // 这个Ajax请求的选项配置信息,请参考jQuery.get()说到的this alert(data.result); }, "json");3、服务器解析Jason数据,处理请求
还没有评论,来说两句吧...