【发布时间】:2017-11-30 22:32:33
【问题描述】:
我正在从 chrome 的控制台获取此错误日志
XMLHttpRequest 无法加载 https://subgroup.domain.com/socket.io/?EIO=3&transport=polling&t=Lpgp_mu。请求的资源上不存在“Access-Control-Allow-Origin”标头。因此,Origin 'http://localhost:3000' 不允许访问。响应的 HTTP 状态代码为 500。
我正在使用 Node.js、socket.io 在我的节点和 react.js 之间进行通信,并使用 digitalocean 的 droplet 使用 nginx 来托管它们。
我已经阅读了很多关于 CORS 错误的信息,但我不确定在哪里修复该错误。我一直试图让它们进入我的 NGINX
location /server {
proxy_pass http://localhost:8080;
proxy_http_version 1.1;
proxy_set_header Access-Control-Allow-Origin *;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
从我的 node.js,服务器端:
var express = require("express");
var app = express();
var http = require("http");
var port = 8080;
var io = require("socket.io").listen(app.listen(port));
app.use("/", function (req, res, next) {
res.status(200).send("Online |" + " Version : [" + AppVersion + "]");
res.setHeader("Access-Control-Allow-Origin","*");
res.setHeader("Access-Control-Allow-Headers","X-Requested-With,content-type");
res.setHeader("Access-Control-Allow-Methods","GET,POST, OPTIONS, PUT, PATCH, DELETE");
next();});
我在客户端连接使用:
const socket = io.connect("https://subgroup.domain.com/server")
我不太确定我应该在哪里寻找什么。任何形式的帮助都会有所帮助。谢谢!
【问题讨论】:
-
遇到同样的问题。请问你找到解决办法了吗?
-
@DipinKrishnan 对于迟到的答案我感到非常抱歉!但是,是的,我通过指定一个 URL 而不是 wildstar * 找到了一个。例如res.setHeader('Access-Control-Allow-Origin', 'subdomain.domain.com');