描述你的问题
我用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
看数组的最后一位是否多了一个逗号导致
主要数据的话,加上双引号。还有数据的格式是否正确。。等等的原因,IE的解析json的算法是不同的。
问题解决:post_list = result.entities 改成 var post_list = result.entities
就没有问题了,,,
好吧!!!我无语了,IE的规则有时松有时紧,总是在你不起眼,,彻底被征服了,,,
感谢同行兄弟们的支持
可能的原因有:
你返回的
json
数据不规范你的代码有问题
请确认以下信息帮助进一步分析:
每条语句后面加上分号试试
在第一句打个断点,截图看看
result
或data
的内容是什么如果可能,用
fiddle
等抓包工具抓一下,看看请求返回的数据是什么
Ie8请用1.x版本的jquery