前台jquery代码:
$.ajax({ type: "POST", url: "OutBoundSign.ashx", success: function (data) {
var jsonobj = eval('(' + data + ')');
后台是ashx文件,像上面的代码是可以得到正确的JSON结果,但我发现添加了dataType:"application/json"后,直接就执行error,alert(XMLHttpRequest.responseText)发现结果和去了dataType后的success中的data一样的,求那位高手给一段ashx文件前台能够让前台代码认得出的。
另外,我发现用Jquery+Json这种方式读取数据,安全好像有问题,表的结构就公开了,如果不把表名放进去,拿到的结果又非常乱。
谁能给我一份ashx+jquery ajax+json的示例,谢谢。注意一定是要加了dataType:"json"的。happy_daily@163.com
$.ajax({dataType:"json",....
设置成JSON还是不行,不设置时是可以正确得到结果的。。。。。
@happydaily:
firebug 看看 返回的数据是 什么
后台 记得 Response.End()
@Qlin: 数据理论上是没有问题的,因为我不加JSON前台是可以正确解析的,一加就执行error,但是alert(XMLHttpRequest.responseText),内容和正常返回的一样。你能给一份经过测试完整的ASHX+HTML页面给我吗?谢谢。
你就使用简单的方法 $.getJson() 或者$.Post()
另外你这样的 是不是应为你后台输出时候没有转为josn格式输出
dataType:"json"
这个问题你不用考虑的太多,你可以直接对那个你不认识的对象做操作
虽然你不然但是浏览器认识 这其中有个转码(HtmlEncode)的问题,不论是你自己格式化的json格式还是
序列化成的json格式浏览器都认的,你直接alert的话都是object对吧?你可以设置一个断点,看看那个你alert()的那个对象
你会发现你绝对可以掌握怎么解析他的,你是在想看看它是什么个样子的话,你必须自己处理,网上也有很多这样解析方法,我以前有个现在 不用了因为不论是序列化的还是自己拼接的json我都能解析了,费那劲干嘛呢,浏览器能懂得就ok啦
dataType设置成json后,success传递过来的data就已经是json了,所以不需要eval了