0

我遇到了大约一个月都无法解决的问题。您可以在此处查看示例页面:http ://www.7ya.ru/travel/tours/

所以,问题是小绿色表单是我们使用跨域 XHR 的小部件,有些人对此有疑问。XHR 请求失败。完全没有要求。检查员只是说“取消”。此问题出现在 OSX 和 Win 上的 FF、Opera 和 Chrome 中。

但!如果您尝试清理缓存(例如在 Chrome 中):

chrome私有数据控件中的复选框

您会看到小部件开始像魅力一样工作。此外,如果您尝试仅清理缓存,它将无法正常工作。

那么,是否有人知道哪些数据可能会影响两个不同平台上大多数浏览器中的 XHR 请求?

PS我一直在尝试使用“香草”XHR 和 jQuery 版本,但它的工作原理相同。

PSS代码位(CoffeeScript):

  1. lt_jq - 本地 jQuery 版本 ($.noConflict())
  2. @inspect - JSON.stringify() 带有一些额外的格式化参数

request = lt_jq.ajax({
    url       : method,
    dataType  : "json",
    data      : params,
    xhrFields : withCredentials:true
})

request.done (data)->
    @request_id = (data.request_id || null)
    callback?(data)

request.fail =>
    console.log "Request failed [#{method}], #{@inspect(params)}"

问题已结束,评论中的详细信息

4

1 回答 1

0

您正在使用的网络是否使用缓存代理,或者从它的声音来看,您是否在网络上安装了防病毒软件或某种过滤器来过滤请求?

听起来文件在没有正确标题的情况下被缓存,因此 CORS 标题被切断......

我建议你检查这个最简单的方法:使用铬:

  1. 清除缓存,打开开发工具,并在请求运行时观察 请求。确保在请求和响应标头中有 CORS 标头。
  2. 现在您的缓存中有文件,请重新加载您的页面。检查它是否不起作用。
  3. 现在它不起作用,转到 chrome://view-http-cache/ 查看各个缓存条目,并查找该文件的请求。打开它。
  4. 检查缓存文件上是否有 CORS 标头。

如果没有...确保代理/防病毒不会切断您网络中的 CORS 标头,或尝试不同的解决方案

于 2013-04-02T16:39:35.997 回答