Backbone.js仅在IE中不会同步

问题描述 投票:1回答:2

有人见过吗?我不打算对此进行扩展。这是唯一的症状。它不会在IE中同步。

javascript jquery ajax backbone.js
2个回答
2
投票

仅通过称为XDomainRequest的特定于IE的对象才支持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


2
投票

这可以帮助其他人搜索IE Backbone同步问题。我有一个IE6-7问题,因为全局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上正常工作后。

© www.soinside.com 2019 - 2024. All rights reserved.