我正在使用 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');
});
在客户那边。
var socket = io.connect('//waleedahmad.kd.io:3000/');
HTML 页面上的脚本标记。
<script type="text/javascript" src="//waleedahmad.kd.io:3000/socket.io/socket.io.js"></script>
我还在 app root 目录中使用. 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"