IE8下js操作json属性报“对象不支持此属性或方法”??

  1. 描述你的问题
    我用jQuery的$.ajax,返回一个json对象,在firefox和谷歌浏览器下,我可以通过"对象.属性"的方式获得json属性的值,,但是在ie8下报了“对象不支持此属性或方法” ,如果这个属性是字符串类型,是没有问题的;如果是数组类型,就会报错误:“对象不支持此属性或方法” ,这是什么原因

  2. 贴上相关代码
    $.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
           },
  3. 贴上报错信息

    cursor_value = result.cursor ? result.cursor : "" //这行没有问题
    post_list = result.entities //这行报错:“对象不支持此属性或方法“

  4. 贴上相关截图

  5. 已经尝试过哪些方法仍然没解决(附上相关链接)

    http://www.iitshare.com/ie8-not-use-native-json.html

阅读 10.2k
5 个回答

可能的原因有:

  1. 你返回的json数据不规范

  2. 你的代码有问题

请确认以下信息帮助进一步分析:

  1. 每条语句后面加上分号试试

  2. 在第一句打个断点,截图看看resultdata的内容是什么

  3. 如果可能,用fiddle等抓包工具抓一下,看看请求返回的数据是什么

Ie8请用1.x版本的jquery

看数组的最后一位是否多了一个逗号导致

主要数据的话,加上双引号。还有数据的格式是否正确。。等等的原因,IE的解析json的算法是不同的。

问题解决:post_list = result.entities 改成 var post_list = result.entities
就没有问题了,,,
好吧!!!我无语了,IE的规则有时松有时紧,总是在你不起眼,,彻底被征服了,,,

感谢同行兄弟们的支持

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏