我正在使用node和socket.io来编写聊天应用程序.它在Chrome上工作正常但mozilla在启用跨源请求时出错.
跨源请求已阻止:同源策略不允许在http://waleedahmad.kd.io:3000/socket.io/?EIO=2&transport=polling&t=1401964309289-2&sid=1OyDavRDf4WErI-VAAAI上读取远程资源.这可以通过将资源移动到同一域或启用CORS来解决.
这是启动节点服务器的代码.
var express = require('express'),
app = express(),
server = require('http').createServer(app),
io = require('socket.io').listen(server),
path = require('path');
server.listen(3000);
app.get('/', function(req, res) {
res.sendfile(__dirname + '/public/index.html');
});
Run Code Online (Sandbox Code Playgroud)
在客户端.
var socket = io.connect('//waleedahmad.kd.io:3000/');
Run Code Online (Sandbox Code Playgroud)
HTML页面上的脚本标记.
<script type="text/javascript" src="//waleedahmad.kd.io:3000/socket.io/socket.io.js"></script>
Run Code Online (Sandbox Code Playgroud)
我也在app根目录中使用.htaccess文件.(waleedahmad.kd.io/node).
Header add Access-Control-Allow-Origin "*"
Header add Access-Control-Allow-Headers "origin, x-requested-with, content-type"
Header add Access-Control-Allow-Methods "PUT, GET, POST, DELETE, OPTIONS"
Run Code Online (Sandbox Code Playgroud) 有人可以告诉我如何在Firefox上允许CORS吗?我很容易在Chrome和IE上管理它,但我完全没有使用Firefox.我编辑了以下关于:config entry的内容
security.fileuri.strict_origin_policy = false
Run Code Online (Sandbox Code Playgroud)
此尝试已在此处多次发布,并在其他网站上也被告知,但它没有任何效果.我阅读了同源策略的Mozilla指南:
https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS
但它只是解释了CORS和相关主题.未列出在FF上启用它的解决方法.
我真的很感激一个明确的解决方案.
ps:FORCECORS无论如何都不起作用......
我们有一个html站点和一个为该网站提供服务的node.js服务器.网站和服务器使用socke.io交换数据.我们在文档中找到了这个:
origin 默认为*:*
允许连接到Socket.IO服务器的原点.
我们的html.site已启用http://questionexample.com/page1.只有这个站点可以连接到我们的服务器.(但每个人都可以连接到该网站.)我们如何设置起源?