gpt4 book ai didi

node.js - SEC7118 : XMLHttpRequest for/socket. io/1/?t=1370206038749 需要跨源资源共享 (CORS)

转载 作者:搜寻专家 更新时间:2023-10-31 23:55:24 24 4
gpt4 key购买 nike

我在一台运行在端口 443(apache 监听被禁用)上的服务器上有一个 nodejs 应用程序,其中包含以下 node.js 包:

Express: 3.2.1
Socket.io: 0.9.14
Request: 2.21.0
Node: 0.11.1

然后我在启用了 nodejs 模块的第二台服务器上有一个 drupal 站点。我在第一个提到的服务器上建立了一个使用 nodejs 应用程序的聊天。直到现在一切都很好,在经历了很多痛苦之后我设法让它全部工作。除了 IE10 之外的所有内容。我不断在 IE10 的控制台中收到错误消息:

SEC7118: XMLHttpRequest for https://mynodejs.com/socket.io/1/?t=1370206038749
required Cross Origin Resource Sharing (CORS).

据我所知,IE10完全支持CORS。不知何故,错误并没有停止加载 socket.io 本身,而是打开了一个 websocket。在我的 node.js 应用程序日志中,用户已获得授权并添加了他的 channel 。在网站上,使用IE10的用户可以看到别人,甚至可以给别人发信息。但是他收不到其他聊天用户的消息...

我将 node.js 应用程序设置为返回基本 CORS 的正确 header :

Access-Control-Allow-Origin    https://mydrupalsite.com
Access-Control-Allow-Headers Origin, X-Requested-With, X-File-Name, Content-Type, Cache-Control
Access-Control-Allow-Credentials true //with or without, it makes no difference

我有意不包含来 self 的 node.js 应用程序的任何代码,因为它完全适用于任何其他浏览器。谁能告诉我发生了什么事?有没有人成功获得在 IE10 上运行的 node.js 应用程序??

最佳答案

AFAIU,SEC7118 不是错误,只是一个通知。我用谷歌搜索但没有在任何 MS 站点上找到代码引用;无论如何,当 CORS 适用于 IE10 时,您可以找到 7118 条消息。这份专注于 CORS 和 IE10 的文档阐明了我的意思(绝对值得一读): http://blogs.msdn.com/b/ie/archive/2012/02/09/cors-for-xhr-in-ie10.aspx

无论如何,我在对 IE10 上的某种 nodejs 聊天(实际上是 BOSH 支持的 js 聊天客户端)进行故障排除时发现了您的问题。在我的案例中,IE10 在发送请求时将“NS1:”添加到某些 xml 属性,从而分解了内容。

因此,您应该仔细检查您的 xml 有效负载,寻找 IE10 和其他(工作中的)浏览器之间的细微差别(例如我们发现的差别)。希望这会有所帮助。

关于node.js - SEC7118 : XMLHttpRequest for/socket. io/1/?t=1370206038749 需要跨源资源共享 (CORS),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16887567/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com