javascript - IE8下js操作json属性报“对象不支持此属性或方法”??
迷茫
迷茫 2017-04-10 17:00:38
[JavaScript讨论组]
  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

迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

全部回复(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的规则有时松有时紧,总是在你不起眼,,彻底被征服了,,,

感谢同行兄弟们的支持

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号