【发布时间】:2020-05-02 01:53:35
【问题描述】:
我的应用最近收到错误
"访问 XMLHttpRequest 在 'https://my-service-domain/socket.io/?EIO=3&transport=polling&t=M-eWtUQ' 来自原点“https://my-app-domain”已被 CORS 策略阻止: 请求中不存在“Access-Control-Allow-Origin”标头 资源。”
当我连接到 socket.io 时。这个问题我还没有找到解决办法,下面我会详细描述,有没有人遇到过这个错误。
服务器配置:
var express = require('express');
var app = express();
app.use(function(req, res, next) {
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers", "X-Requested-With");
res.header("Access-Control-Allow-Headers", "Content-Type");
res.header("Access-Control-Allow-Methods", "PUT, GET, POST, DELETE, OPTIONS");
next();
});
var http = require('http');
var server = http.createServer(app);
var io = require('socket.io').listen(server, {log:false, origins:'*:*'});
客户端配置:
var socket = io('https://my-service-domain', {transports: ['polling']});
socket.on(channel_id, function(data){
// some code
});
我尝试切换websocket连接选项var socket = io('https://my-service-domain', {transports: ['websocket']}),报错
"WebSocket 连接到 'wss://my-service-domain/socket.io/?EIO=3& transport = websocket' 失败:WebSocket 握手期间出错: 意外响应代码:400"
【问题讨论】:
标签: node.js express sockets websocket socket.io