Google chrome extension 插座IO-铬合金扩展CORS

Google chrome extension 插座IO-铬合金扩展CORS,google-chrome-extension,socket.io,Google Chrome Extension,Socket.io,我正在开发一个chrome扩展,它使用socket IO与后端服务器通信。问题是我的连接似乎被跨源策略阻止了 我的服务器运行在localhost上,但我从本地目录加载的chrome扩展有其他一些“origin”头,因此我的请求被阻止 如何允许从本地chrome扩展进行套接字IO连接 请求: https://localhost:8000/socket.io/?EIO=3&transport=polling&t=LkNvOuH net::ERR_CONNECTION_CLOSED

我正在开发一个chrome扩展,它使用socket IO与后端服务器通信。问题是我的连接似乎被跨源策略阻止了

我的服务器运行在localhost上,但我从本地目录加载的chrome扩展有其他一些“origin”头,因此我的请求被阻止

如何允许从本地chrome扩展进行套接字IO连接

请求:

https://localhost:8000/socket.io/?EIO=3&transport=polling&t=LkNvOuH net::ERR_CONNECTION_CLOSED
标题:

Provisional headers are shown
Accept:*/*
Origin:chrome-extension://acgnndapfmilgphkhkdkipfiipikkjki
Referer:https://docs.google.com/presentation
User-Agent:Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.59 Safari/537.36

您可能需要检查此项,以显示如何正确集成Socket.IO

如前所述,Socket.IO由两部分组成:

  • 与Node.JS HTTP服务器集成(或装载)的服务器:
    socket.io
  • 在浏览器端加载的客户端库:
    socket.io client
还请注意,在开发过程中,
socket.io
会自动为客户端提供服务,因此您只需安装一个模块:

npm install --save socket.io
这将安装模块并将依赖项添加到
package.json
。编辑
index.js
以添加它:

var app = require('express')();
var http = require('http').Server(app);
var io = require('socket.io')(http);

app.get('/', function(req, res){
  res.sendFile(__dirname + '/index.html');
});

io.on('connection', function(socket){
  console.log('a user connected');
});

http.listen(3000, function(){
  console.log('listening on *:3000');
});
此外,

请注意,在调用io()时,我没有指定任何URL,因为它默认为尝试连接到为页面提供服务的主机


最后,您可能还需要检查此或此相关文件中的建议解决方案。

如果您在后端使用Express framework,我通过向服务器添加中间件解决了此问题,并添加了这一行
app.use(cors())