web-dev-qa-db-ja.com

ソケットIOエラー「XMLHttpRequestへのアクセスがCORSポリシーによってブロックされました」

私のアプリは最近エラーを受け取りました

「「 https://my-service-domain/socket.io/?EIO = 3&transport = polling&t = M-eWtUQ 」でのXMLHttpRequestへのアクセス」 Origin ' https:// my-app-domain 'がCORSポリシーによってブロックされました: 'Access-Control-Allow-Origin'ヘッダーがありません要求されたリソースで。」

私がsocket.ioに接続するとき。私はこの問題の解決策をまだ見つけていません。以下の画像で詳しく説明します。このエラーが発生したことはありませんか。

enter image description here

サーバー構成:

_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']})を切り替えようとしましたが、エラーが発生しました

「「wss://my-service-domain/socket.io/?EIO = 3&transport = websocket」へのWebSocket接続に失敗しました:WebSocketハンドシェイク中にエラーが発生しました:予期しない応答コード:400」

4

HTTPSプロトコルを使用している場合は、次のスニペットを使用してみてください。

var http = require('https');
1
SANKET GIRME