【发布时间】:2013-03-23 03:23:42
【问题描述】:
我遇到了很多我无法解决的问题 大约一个月。您可以在此处查看示例页面:http://www.7ya.ru/travel/tours/
所以,问题是小绿色表单是我们使用跨域 XHR 和 有些人对此有问题。 XHR 请求失败。完全没有要求。督察 只是说“取消”。 OSX 和 Win 上的 FF、Opera 和 Chrome 都会出现这个问题。
但是!如果您尝试清理缓存(例如在 Chrome 中):
您会看到小部件开始像魅力一样工作。 此外,如果您尝试只清理缓存,它也不会起作用。
那么,是否有人知道哪些数据可能会影响两个不同平台上大多数浏览器中的 XHR 请求?
P.S.我一直在尝试使用“香草”XHR 和 jQuery 版本,但效果相同。
P.S.S. 一点代码(CoffeeScript):
- lt_jq - 本地 jQuery 版本 ($.noConflict())
- @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)}"
问题已结束,详情见评论
【问题讨论】:
-
CORS 在 FF、Opera、Chrome 和 IE10 中得到完全支持。 WebSocket 也是,但它真的很奇怪的解决方案。我想这个小部件的功能不在 WebSocket 能力范围内。小部件不需要“实时”用户界面。它只是将数据发送到服务器并接收 JSON。没有别的了。
-
当然小部件按需发送数据。
-
对于后端我们使用 RoR (Unicorn, NGINX, RoR)。
-
您最终解决了这个问题吗?如果是,那是什么?
-
还没有。时间不够。如果有新的信息,我会写。我想我会在周一至周二完成。
标签: javascript xmlhttprequest cross-domain client-side