Backbone.js不会仅在IE中同步

时间:2011-12-15 14:36:28

标签: javascript jquery ajax backbone.js cors

有没有人见过这个?我不知道如何扩展这一点。这是唯一的症状。它不会在IE中同步。

2 个答案:

答案 0 :(得分:2)

IE中的跨域请求仅通过名为XDomainRequest的特定于IE的对象得到支持。与在所有其他主流浏览器中实现的XMLHTTPRequest对象相比, XDomainRequest 过于基本了!

我猜你正在使用jQuery来处理Ajax请求。 jQuery不使用 XDomainRequest 在IE上进行跨域调用,所以你运气不好!

XDomainRequest仅提供XMLHTTPRequest功能的子集。例如,不可能通过 XDomainRequest 向HTTP-Get / Post请求插入任何自定义标头[通常你会为此目的使用jQuery的“onBeforeSend”回调]。

请参阅此MSDN文档:http://msdn.microsoft.com/en-us/library/cc288060(v=vs.85).aspx

我在当前项目中遇到了所有这些,最后在托管我的应用程序的Apache服务器上使用了代理,即mod_proxy。请查看我对此主题How to make an ajax request to an API using CORS and backbonejs

的相关答案

答案 1 :(得分:2)

这可能有助于其他人搜索IE Backbone同步问题。我有一个IE6-7问题,其中sync不起作用,因为全局JSON对象不存在。默认的Backbone Sync实现使用JSON.stringify生成参数。 IE6和7中不存在JSON对象,因此您需要条件注释并包含crockford的json2.js脚本,该脚本会添加一个window.JSON对象:

https://github.com/douglascrockford/JSON-js/blob/master/json2.js

在添加Backbone后,从IE6开始工作。