关于ajax返回值读取的问题

本文探讨了在移动端页面中使用AJAX遇到的问题及解决方案,尤其是在处理JSON数据时的常见误区,并对比了PC端与移动端的不同之处。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题: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对象来进行返回解析。


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

调试结果发现:在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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值