V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐关注
Meteor
JSLint - a JavaScript code quality tool
jsFiddle
D3.js
WebStorm
推荐书目
JavaScript 权威指南第 5 版
Closure: The Definitive Guide
VeryCB
V2EX  ›  JavaScript

在IE中用jQuery ajax处理json的问题,求解答~

  •  
  •   VeryCB · 2012-09-11 14:39:45 +08:00 · 6012 次点击
    这是一个创建于 4454 天前的主题,其中的信息可能已经有所发展或是发生改变。


    用上面的代码处理data.json,在firefox中是好的,但是IE(6、7、8)中失败,然后我把data.json中的“song”的value删到只剩一组,在IE中就好了,但是有两组或两组以上值的时候就不行,求解答~感谢!

    原来的data.json和"song"只有一组值的data.json代码如下:

    11 条回复    1970-01-01 08:00:00 +08:00
    altchen
        1
    altchen  
       2012-09-11 14:51:48 +08:00
    是不是你的数组>1的时候是最后有个逗号如[{},{},]
    去掉最后的逗号试下
    VeryCB
        2
    VeryCB  
    OP
       2012-09-11 14:53:39 +08:00
    @altchen 没有逗号...
    lerry
        3
    lerry  
       2012-09-11 15:05:21 +08:00
    @VeryCB 你看content-type设置正确了吗
    VeryCB
        4
    VeryCB  
    OP
       2012-09-11 15:16:41 +08:00
    @lerry 设了contentType: "application/json; charset=utf-8" 也不行...
    VeryCB
        5
    VeryCB  
    OP
       2012-09-11 15:58:28 +08:00
    放弃用本地文件了,写了个服务器端来放回json,问题解决~
    xmmwc
        6
    xmmwc  
       2012-09-12 00:23:10 +08:00
    $.ajax({
    type: "GET",
    url: "data.json",
    cache: false,
    success: function (data) {
    data = eval("("+ data + ")");
    var i = 0;
    $('#player .album-cover a').attr({
    href: data.song[i].album,
    title: data.song[i].albumtitle
    });
    $('#player .album-cover img').attr({
    src: data.song[i].picture,
    alt: data.song[i].albumtitle
    });
    }
    });
    Julyyq
        7
    Julyyq  
       2012-09-12 00:52:28 +08:00
    朱一表示测试JSON神马的,要么在服务器环境下,要么在IE9下。。。
    weicaizhi
        8
    weicaizhi  
       2012-09-12 11:00:45 +08:00
    个人经验是,IE浏览器对JS的逗号要求很严格,多一个就会报错,尤其是兼容模式下。所以建议你用IE9选择IE 7或8 浏览模式,然后把调试打开,如果真是我说的这种问题,调试会帮你找到错误的那一行的,我这也是好多次都是这样的问题。
    tangzx
        9
    tangzx  
       2012-09-12 17:04:51 +08:00
    因为火狐有原生的JSON。parse,对JSON格式要求很松,而IE没有这个方法,jquery会调用自己实现的json。parse,而jquery自己实现的jqueryparse很严格,不能有格式错误,请去json。org上参考,空格不允许,键值必须用引号括起来
    cougar
        10
    cougar  
       2012-09-13 11:43:41 +08:00
    不用$.each迭代吗?
    chuxiwen
        11
    chuxiwen  
       2012-09-13 13:32:28 +08:00
    dataType

    The type of data that you're expecting back from the server.

    在服务器端的返回 content-type设置需为 "application/json;charset=UTF-8"

    另外,JSON 的生成最好用已有的库或者直接对 object 进行 serialization
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5667 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 41ms · UTC 06:29 · PVG 14:29 · LAX 22:29 · JFK 01:29
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.