描述你的问题
我用jQuery的$.ajax,返回一个json对象,在firefox和谷歌浏览器下,我可以通过"对象.属性"的方式获得json属性的值,,但是在ie8下报了“对象不支持此属性或方法” ,如果这个属性是字符串类型,是没有问题的;如果是数组类型,就会报错误:“对象不支持此属性或方法” ,这是什么原因
贴上相关代码
$.ajax({
url: requestURL,
type: "GET",
async: false,
dataType: 'json',
contentType: "application/json; charset=utf-8",
success: function (data, textStatus, jqXHR) {
result = data
cursor_value = result.cursor ? result.cursor : ""
post_list = result.entities
},
贴上报错信息
cursor_value = result.cursor ? result.cursor : "" //这行没有问题
post_list = result.entities //这行报错:“对象不支持此属性或方法“
贴上相关截图
已经尝试过哪些方法仍然没解决(附上相关链接)
http://www.iitshare.com/ie8-not-use-native-json.html
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
可能的原因有:
你返回的
json数据不规范你的代码有问题
请确认以下信息帮助进一步分析:
每条语句后面加上分号试试
在第一句打个断点,截图看看
result或data的内容是什么如果可能,用
fiddle等抓包工具抓一下,看看请求返回的数据是什么Ie8请用1.x版本的jquery
看数组的最后一位是否多了一个逗号导致
主要数据的话,加上双引号。还有数据的格式是否正确。。等等的原因,IE的解析json的算法是不同的。
问题解决:post_list = result.entities 改成 var post_list = result.entities
就没有问题了,,,
好吧!!!我无语了,IE的规则有时松有时紧,总是在你不起眼,,彻底被征服了,,,
感谢同行兄弟们的支持