相关疑难解决方法(0)

Socket.io + Node.js跨源请求被阻止

我正在使用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)

sockets node.js cors socket.io

52
推荐指数
10
解决办法
7万
查看次数

当请求的凭据模式为“ include”时,响应中“ Access-Control-Allow-Origin”标头的值不得为通配符“ *”

我试图在Angular和Nodejs服务器之间连接socket.io

在Angular中,我声明了一个新套接字,并从'socket.io-client'中将其导入为io *。... @component ... const socket = io.connect(' http:// localhost:3000 ');

在后端:server.js

const express = require('express');
const app = express();
var http = require('http').Server(app);
var io = require('socket.io')(http);
io.set('origins', 'http://localhost:4200');

var routes = require('./routes/routes')(io);

app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());
app.use(function (req, res, next) {
    res.header("Access-Control-Allow-Origin", "*");
    res.header("Access-Control-Allow-Methods", "GET, POST, PUT ,DELETE");
    res.header(
        "Access-Control-Allow-Headers",
        "Origin, X-Requested-With, Content-Type, Accept"
    );
    next();
});
io.on('connection', function (socket) {
    socket.emit('news', { hello: 'world' });
    console.log("connectd");
});
app.use('/', routes);
var server = app.listen(3000, function (io) …
Run Code Online (Sandbox Code Playgroud)

javascript node.js cors socket.io angular

-1
推荐指数
2
解决办法
4794
查看次数

标签 统计

cors ×2

node.js ×2

socket.io ×2

angular ×1

javascript ×1

sockets ×1