Backbone.js 仅在 IE 中无法同步

发布于 2024-12-21 12:49:42 字数 47 浏览 0 评论 0原文

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

Has anyone ever seen this? I don't how to expand on this. It's the only symptom. It will not sync in IE.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

夏尔 2024-12-28 12:49:42

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。请查看我关于此主题的相关答案 如何使用 CORS 和backbonejs 向 API 发出 ajax 请求

Cross Domain requests in IE are supported via only the IE-specific object called XDomainRequest. XDomainRequest is too basic when compared with the XMLHTTPRequest object that's implemented in all other major browsers!

I am guessing you are using jQuery for Ajax-requests. jQuery does not use the XDomainRequest for making Cross-Domain calls on IE, so you are out of luck!

XDomainRequest offers only a subset of XMLHTTPRequest's features. For example, it is impossible to insert any custom headers to the HTTP-Get/Post requests, via XDomainRequest [typically you would use the jQuery's "onBeforeSend" callback for this purpose].

Please refer to this MSDN documentation: http://msdn.microsoft.com/en-us/library/cc288060(v=vs.85).aspx.

I encountered all these in my current project and finally ended up using a Proxy i.e. mod_proxy, on the Apache server that's hosting my app. Please have a look at my related answer on this topic How to make an ajax request to an API using CORS and backbonejs

紫﹏色ふ单纯 2024-12-28 12:49:42

这可能会帮助其他人搜索 IE 主干同步问题。我遇到了 IE6-7 问题,同步无法正常工作,因为全局 JSON 对象不存在。默认的 Backbone Sync 实现使用 JSON.stringify 来生成参数。 JSON 对象在 IE6 和 7 中不存在,因此您需要条件注释并包含 crockford 的 json2.js 脚本,该脚本添加 window.JSON 对象:

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

添加后Backbone 从 IE6 开始就可以正常工作。

This may help others searching for IE Backbone sync issues. I had an IE6-7 problem where sync didn't work because the global JSON object doesn't exist. The default Backbone Sync implementation uses JSON.stringify to generate the parameters. The JSON object is not present in IE6 and 7 so you'll need a conditional comment and include crockford's json2.js script which adds a window.JSON object :

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

After adding that Backbone worked right from IE6.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文