Ошибка сокета ввода-вывода "Доступ к XMLHttpRequest был заблокирован политикой CORS" - PullRequest
1 голос
/ 15 января 2020

мое приложение недавно получило сообщение об ошибке

"Доступ к 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. Я еще не нашел решения этой проблемы, я опишу подробно как изображение ниже, кто-нибудь когда-либо сталкивался с этой ошибкой.

enter image description here

Сервер config:

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:'*:*'});

Client config:

var socket = io('https://my-service-domain', {transports: ['polling']});
socket.on(channel_id, function(data){
     // some code
});

Я попытался переключить опцию подключения через веб-сокет var socket = io('https://my-service-domain', {transports: ['websocket']}), я получил ошибку

"WebSocket не удалось подключиться к «wss: //my-service-domain/socket.io/? EIO = 3 & transport = websocket»: ошибка во время рукопожатия WebSocket: непредвиденный код ответа: 400 "

1 Ответ

1 голос
/ 25 февраля 2020

Если вы используете протокол HTTPS, попробуйте использовать следующий фрагмент:

var http = require('https');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...