关于ajax返回值读取的问题

前端之家收集整理的这篇文章主要介绍了关于ajax返回值读取的问题前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

问题:PC端javascript程序 直接在success:function(xhr)中传入xhr ,然后通过xhr直接访问其中属性和值对,但是在mobile页面中怎么调试也不能直接访问返回值得属性值对?

解决步骤:

首先怀疑是我zepto使用ajaxf方法的问题,但是我使用alert和console.log直接打印,发现同样提示 undefined;故排除zepto的问题;

百般调试没有解决后,在网上发想应该是对json数据处理的问题,解决办法如下:

a. var data =(new Function("","return "+xhr))();

b.var data = eval("(" + xhr + ")"); //加上圆括号的目的是迫使eval函数在处理JavaScript代码的时候强制将括号内的表达式(expression)转化为对象,而不是作为语句(statement)来执行

在JS中将JSON的字符串解析成JSON数据格式,一般有两种方式:

1.一种为使用eval()函数

2. 使用Function对象来进行返回解析。


@H_502_22@至于PC端为啥可以还有待研究!

@H_502_22@调试结果发现:在zepto 中 ajax 的dataType必须使用小写“json”指定才有效,而在PC版中jquery 传参数时datatype可以是用“JSON”也可以识别(原来程序就是“JSON”,应该是之前编程者的习惯不好),就是因为两者的差异,导致了问题的产生! 手册上 dataType(default:Intelligent Guess (xml,json,script,or html))



详见地址http://www.cnblogs.com/myjavawork/archive/2011/03/10/1979279.html

原文链接:https://www.f2er.com/ajax/161739.html

猜你在找的Ajax相关文章