如何爲express.io啓用跨域,因爲我需要一個cordova應用,chrome說「No」Access-Control-Allow-Origin'標頭存在於請求的資源中。 「,這是我的代碼。express + socket.io跨域
服務器
var app = require('express.io')();
app.http().io()
app.listen(2000);
app.io.set('origins', '*:*');
app.io.set('transports', [
'websocket'
, 'flashsocket'
, 'htmlfile'
, 'xhr-polling'
, 'jsonp-polling'
]);
app.get('/', function (req, res) {
res.setHeader('Access-Control-Allow-Origin','*');
res.send(200, 'Todo fino');
req.io.route('connection');
});
app.io.route('connection', function (req) {
console.log('User connected');
});
客戶
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<script src="https://cdn.socket.io/socket.io-1.3.3.js"></script>
<script>
var socket = io.connect('http://localhost:2000');
</script>
<title>Document</title>
</head>
<body>
Probando Socket system
</body>
</html>
Express.io是非常過時。你的socket.io客戶端版本是'1.3.3',而express.io仍然在'0.9.16'上運行,它們不是向後兼容的。 – 2015-02-10 15:01:45
使用最新版本的sailsjs時出現同樣的錯誤。 config.sockets起源:'*:*', – pedronalbert 2015-02-10 15:15:35
嘗試添加res.header(「Access-Control-Allow-Headers」,「Content-Type」); – pratiklodha 2015-02-10 16:16:05