Backbone.js不会仅在IE中同步

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

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

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

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

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

我在当前的项目中遇到了所有这些,最后在托管我的应用程序的Apache服务器上使用了一个代理,即mod_proxy。 请查看我关于此主题的相关答案如何使用CORS和backbonejs向API发出ajax请求

这可以帮助其他人搜索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正常工作。