加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

关于ajax返回值读取的问题

发布时间:2020-12-16 03:37:10 所属栏目:百科 来源:网络整理
导读:问题:PC端javascript程序 直接在success:function(xhr)中传入xhr ,然后通过xhr直接访问其中属性和值对,但是在mobile页面中怎么调试也不能直接访问返回值得属性值对? 解决步骤: 首先怀疑是我zepto使用ajaxf方法的问题,但是我使用alert和console.log

问题: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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读