我一直在接受
跨源请求已阻止:同源策略禁止在http://example.com:2013/socket.io/?EIO=3&transport=polling&t=1433950808025-0读取远程资源 .(原因:CORS请求失败).
当我尝试访问我的node.js. 这对我不起作用:
app.use(function(req, res, next) {
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
next();
});
Run Code Online (Sandbox Code Playgroud)
@edit:这是更新的完整代码:
var express = require('express');
var http = require('http');
var expressvar = express();
expressvar.use(function (req, res, next) {
res.setHeader('Access-Control-Allow-Headers', 'accept, authorization, content-type, x-requested-with');
res.setHeader('Access-Control-Allow-Methods', 'GET,HEAD,PUT,PATCH,POST,DELETE');
res.setHeader('Access-Control-Allow-Origin', req.header('origin'));
next();
});
expressvar.use(express.static('../'));
expressvar.use("/socket.io", express.static('../socket.io'));
var app = http.createServer(expressvar);
var io = require('socket.io').listen(app);
app.listen(2013);
Run Code Online (Sandbox Code Playgroud)
cml*_*ndz 22
试试这个解决方案(编辑包含完整的工作代码)
var app = require('express')();
var server = require('http').Server(app);
var io = require('socket.io')(server);
io.set('origins', '*:*');
app.use(function(req, res, next) {
res.header('Access-Control-Allow-Origin', req.get('Origin') || '*');
res.header('Access-Control-Allow-Credentials', 'true');
res.header('Access-Control-Allow-Methods', 'GET,HEAD,PUT,PATCH,POST,DELETE');
res.header('Access-Control-Expose-Headers', 'Content-Length');
res.header('Access-Control-Allow-Headers', 'Accept, Authorization, Content-Type, X-Requested-With, Range');
if (req.method === 'OPTIONS') {
return res.send(200);
} else {
return next();
}
});
server.listen(80);
app.get('/', function (req, res) {
res.send('OK');
});
io.on('connection', function (socket) {
socket.emit('news', { hello: 'world' });
socket.on('my other event', function (data) {
console.log(data);
});
});
Run Code Online (Sandbox Code Playgroud)
cors包这样做
// npm install --save cors
var express = require('express');
var cors = require('cors');
var app = express();
app.use(cors());
app.use(express.static());
app.get('*', function(){});
require('http').createServer(app).listen(3000)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
9625 次 |
最近记录: |