javascript - info - 未处理的 socket.io url

标签 javascript node.js sockets socket.io

我正在尝试使用套接字连接到我在本地运行的 Node 服务器 但我不断在服务器端获取 'info - unhandled socket.io url' + “XMLHttpRequest 无法加载 http://localhost:8080/socket.io/?EIO=3&transport=polling&t=1424356590540-0。请求的资源上不存在“Access-Control-Allow-Origin” header 。Origin '因此不允许访问 http://localhost:8000'。” 在 chrome 上(使用地址 localhost:8000/index.html)

// top six lines of code to see setup
var express = require('express'), 
app = express(), 
http = require('http'),
server = http.createServer(app),
io = require('socket.io').listen(server);

server.listen(8080);

我还在端口 8000 上使用 python SimpleHTTPServer

客户端代码是:

var socket = io.connect('http://localhost:8080');

socket.on('connection', function(){
    console.log("connected")
});

使用 https://cdn.socket.io/socket.io-1.3.4.js “sockets.io 版本

我假设 html 是无关紧要的,因为我没有任何 JavaScript 代码(除了对 Angular 和 jquery 的引用)

最佳答案

这是 CORS 的问题.

由于您的网页位于 localhost:8000 上,而 Socket.io 服务器位于 localhost:8080 上(两个不同的端口,因此两个不同的服务器),为了允许两者之间的异步请求,您需要启用 CORS。出于安全原因,浏览器需要这样做。

您的服务器似乎正在使用 Express。在 Express 中启用 CORS 非常容易,这要归功于 NPM 软件包,例如 cors 。或者,查看有关 SO 的一些问题,例如:How to allow CORS?

关于javascript - info - 未处理的 socket.io url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28609196/

相关文章:

node.js - Azure函数上下文日志未正确记录,不同步

c - inet_pton() 对应的链路层地址

Python套接字: WinError 10022

javascript - 将变量传递给 javascript 函数并在 document.form 中使用它?

javascript - 堆栈中的中间元素

javascript - 环境变量不适用于带有 Nuxt 的 Vercel

javascript - 如何使用 Node.js 检查字符串是否为 xml

javascript - 从服务器 javascript/phaser 获取随机图像

javascript - 使用类处理 NodeJS 4 中的循环依赖

PHP套接字UDP通信