我的node.js服务器在我的实时网站“https://www.example.com”上运行得很漂亮,但是开发环境会引发以下控制台错误:
“XMLHttpRequest无法加载https://dev.example.com:2083/socket.io/?EIO=3&transport=polling&t=LtTLz1_。请求的资源上没有'Access-Control-Allow-Origin'标头。因此不允许原点”https://dev.example.com“访问。响应具有HTTP状态代码522。“
我正在使用cloudflare,我运行了两个node.js服务器,实时服务器在端口2053上运行,dev在端口2083上运行。
我尝试了几种方法来添加标题Access-Control-Allow-Origin:*并且似乎没有任何效果。
这是我的node.js脚本的顶部:
var fs = require('fs');
var options = {
ca: fs.readFileSync(__dirname + '/ca.pem'),
key: fs.readFileSync(__dirname + '/file.pem'),
cert: fs.readFileSync(__dirname + '/file.crt')
};
var express = require('express'),
app = express();
app.use(function(req, res, next) {
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
next();
});
var https = require('https'),
server = https.createServer(options, app),
io = require('socket.io').listen(server);
server.listen(2083);
这里有什么我想念的吗?
答案 0 :(得分:0)
原来它与cloudflare无关。我在WHM / cpanel服务器上,WHM使用端口2083(SSL)和2087(SSL)。
我使用的是端口8443而且效果很好。
总而言之,虽然cloudflare有2083和2087开放,但不要将它们与cpanel结合使用。