Google chrome extension 插座IO-铬合金扩展CORS
我正在开发一个chrome扩展,它使用socket IO与后端服务器通信。问题是我的连接似乎被跨源策略阻止了 我的服务器运行在localhost上,但我从本地目录加载的chrome扩展有其他一些“origin”头,因此我的请求被阻止 如何允许从本地chrome扩展进行套接字IO连接 请求: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
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())