Hya星,
我在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);
在使用jsonp / xhr - polling时,似乎来自SharePoint的iE或IIS都假定使用XSS。配置的传输是
按此顺序。我们使用
仅出于测试目的,我只需设置
io.util.ua.hasCORS = false;
第1626行有帮助,但当然导致安全警告全部
SEC7130: Potential cross-site scripting detected
有谁知道我做错了什么或这里有什么问题?提前谢谢!
编辑 我在googleGroups找到了以下讨论。我还评论了我的GitHub Issue
答案 0 :(得分:1)
固定!解决方案是您必须添加一个p3p标头bevor您发送cookie。标题应该看起来像那样
res.setHeader("p3p", "CP=\"COM CNT DEM FIN GOV ONL OTC PHY ALL DSP NID OHO CUR OUR BUS IND LEG NOR STP\"");
答案 1 :(得分:0)
在线上设置断点并检查网址。我的应用在http://www.localhost/(...)
中运行,网址为http://localhost/(...)
。
在
var socket = io.connect('http://localhost:4000', { query: "fk="+my_id });
在
var socket = io.connect('http://www.localhost:4000', { query: "fk="+my_id });
问候。