私のアプリは最近エラーを受け取りました
「「 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に接続するとき。私はこの問題の解決策をまだ見つけていません。以下の画像で詳しく説明します。このエラーが発生したことはありませんか。
サーバー構成:
_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」
HTTPSプロトコルを使用している場合は、次のスニペットを使用してみてください。
var http = require('https');