【发布时间】:2014-07-18 06:10:27
【问题描述】:
喂,
我在 HTTPS 下的 NodeJS 环境中运行 socket.io 服务器。 调用我的应用程序以开始与我的 socket.io 服务器通信的 js 代码在 sharePoint 2013 实例 (Office 365) 上运行。
如果我在 Chrome 或 Firefox 中访问我的页面,一切正常。 在 iE10 中,我从控制台中的 socket.io 客户端得到以下警告
SCRIPT5: Access is denied.
socket.io.js, line 1641 character 9
下面一行
xhr.open('GET', url, true);
似乎来自 SharePoint 的 iE 或 IIS 在使用 jsonp/xhr - 轮询时假定了 XSS。配置的传输是
- 'jsonp-polling'
- 'websocket'
- 'xhr-polling'
按这个顺序。我们使用
- SocketServer 0.9.16
- SocketClient 0.9.11
我只是为了测试目的而设置的
io.util.ua.hasCORS = false;
在第 1626 行,这有帮助,但当然会导致安全警告 allá
SEC7130: Potential cross-site scripting detected
有谁知道我做错了什么或这里有什么问题?提前致谢!
编辑 在我做了更多研究后,我在googleGroups 上发现了以下讨论。我还评论了我的GitHub Issue
【问题讨论】:
-
出于安全原因,您必须连接到相同的服务器和端口以防止任何 CORS。现代浏览器在某些情况下可能会忽略它,并且有些浏览器会实现额外的功能来通过标头来克服它,但通常它并没有得到很好的支持,因此您必须尝试将 WebSockets 放在与 HTML 相同的域(不是必需的服务器)上服务器来自。
标签: javascript node.js socket.io internet-explorer-10 sharepoint-2013