【问题标题】:Backbone.js didn't parse data in IEBackbone.js 没有在 IE 中解析数据
【发布时间】:2012-05-31 03:03:53
【问题描述】:

我正在使用backbone.js 来构建一个网站。它在我们的开发服务器中运行良好,但它没有使用 IE7-9 解析客户端服务器中的数据。 (火狐、Safari都可以)

我发现主干调用 fetch() 来请求数据,但是当数据返回时它没有启动 parse()。我找不到成功或错误返回。有一段代码:

EMR.CategoriesCollection = Backbone.Collection.extend({

        url : 'contents/json/categories.txt',

        initialize:function () {
            console.log('Get data from:', this.url);
            this.fetch();
        },

        model: EMR.ItemModel,

        parse : function(data) {
            console.log("CategoriesCollection parse data:", [data]);
            return data; 
        }
    });

请比较下面的两个链接(在 IE 7-9 中),它们是同一组代码,只是服务器不同:

它有效: 1)http://pms.dq.hk/clients/amex_eMR/client/cn/emr/test_data.html

它失败了: 2)http://qwww.americanexpress.com/hk/cn/emr/test_data.html

如果主干发送了 fetch(),但是 parse() 没有触发,如何追踪问题?

我可以尝试任何可能的方法吗?

感谢您的建议。

问候,

迈克尔

【问题讨论】:

    标签: javascript ajax backbone.js backbone-events


    【解决方案1】:

    我可以看到两者之间的唯一区别是响应标头..

    你的服务器:

    Connection  Keep-Alive
    Date    Thu, 31 May 2012 03:41:16 GMT
    Etag    "ae6691-123ac-59de3b00"
    Keep-Alive  timeout=15, max=98
    Server  Apache/2.0.63 (Unix) PHP/5.3.2 DAV/2
    

    客户端服务器:

    Connection  keep-alive
    Content-Type    text/plain; charset=big-5
    Date    Thu, 31 May 2012 03:41:25 GMT
    Last-Modified   Tue, 22 May 2012 06:41:10 GMT
    Vary    Accept-Encoding
    

    客户端服务器响应中的内容类型引起了我的注意,但我不是 IE 专家..您可能想提及您遇到问题的 IE 版本并测试其他一些版本以隔离它..

    【讨论】:

    • 感谢您的回复。我测试了IE 7-9,都出问题了。
    【解决方案2】:

    我可以尝试任何可能的方法吗?

    你好。您是否尝试向 fetch 方法添加错误回调? 此外,«fail» 服务器以 gzip 格式发送 gzip 压缩内容。也许 IE 不能以正确的方式处理压缩的 JSON?或者您可以尝试将 Content-Type 标头从 «text/plain» 更改为 «application/json»?

    【讨论】:

      【解决方案3】:

      问题出在: http://forum.jquery.com/topic/the-problem-with-ie8-and-encoding-error-c00ce56e

      我们客户端的服务器在

      中返回数据
      Content-Type    text/plain; charset=big-5
      

      当我在 fetch() 中添加错误处理程序时,我可以看到错误返回“Could not complete the operation due to error c00ce56e”。这就是 parse() 不起作用的原因。

      我无法更改客户端的服务器设置,所以我将数据文件放到了返回 Content-Type text/plain 的其他目录;解决问题。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-02-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多