【问题标题】:Backbone.js wont sync in IE onlyBackbone.js 不会仅在 IE 中同步
【发布时间】:2019-12-30 15:53:25
【问题描述】:

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

【问题讨论】:

  • 所以根本没有产生 fiddler 流量?
  • 什么都没有。 if i follow the execution into jquery - for IE transport is null: // 如果没有传输,我们自动中止 if (!transport) { done(-1, "No Transport");
  • 您是否有机会发布跨域帖子?
  • 是的,但它在所有其他浏览器中都可以使用?
  • 更具体的跨域 GET 但是是的,适用于所有其他浏览器吗?

标签: javascript jquery ajax backbone.js


【解决方案1】:

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

我猜你正在使用 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 来生成参数。 JSON 对象在 IE6 和 7 中不存在,因此您需要条件注释并包含 crockford 的 json2.js 脚本,该脚本添加了一个 window.JSON 对象:

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

    添加后,Backbone 可以在 IE6 中正常工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-17
      • 1970-01-01
      • 1970-01-01
      • 2012-05-18
      相关资源
      最近更新 更多