Node.js 否';访问控制允许原点';自SSL
我最近转而使用带有SSL证书的安全请求。由于我切换了,我得到了以下错误 加载失败 : 请求的服务器上不存在“Access Control Allow Origin”标头 资源。因此,不允许使用源“” 通道响应的HTTP状态代码为521Node.js 否';访问控制允许原点';自SSL,node.js,ssl,socket.io,cross-domain,Node.js,Ssl,Socket.io,Cross Domain,我最近转而使用带有SSL证书的安全请求。由于我切换了,我得到了以下错误 加载失败 : 请求的服务器上不存在“Access Control Allow Origin”标头 资源。因此,不允许使用源“” 通道响应的HTTP状态代码为521 我曾尝试将socket.io的来源设置为我们网站的域,但没有解决任何问题。我不确定这是否与其他内容有关,但当我使用正常的http请求时,它工作正常。少了什么?(cors?我只是创建密钥和证书文件,并包括以下内容 var app = require('../
我曾尝试将
socket.io
的来源设置为我们网站的域,但没有解决任何问题。我不确定这是否与其他内容有关,但当我使用正常的http
请求时,它工作正常。少了什么?(cors?我只是创建密钥和证书文件,并包括以下内容
var app = require('../app');
var server = https.createServer({
key: fs.readFileSync('/var/www/html/driver_app/key.key', 'utf8'),
cert: fs.readFileSync('/var/www/html/driver_app/cert.crt', 'utf8'),
requestCert: false,
rejectUnauthorized: false
},app);
var ios = require('socket.io')(server);
require("../socket/socket")(ios);
// socket.js is
module.exports = function(io){
io.use(require('socketio-wildcard')());
io.use(require('./middleware'));
io.on('connection', (socket)=>{
console.log("connection done")
socket.on("error", (err)=>{
console.error("server err", err);
})
})
}
其中app是我的express app,socket/socket.js是我的socket.io app。这对我来说很好使端口匹配或使用CORS。响应的HTTP状态代码为521=“Web服务器已关闭:源服务器已拒绝来自Cloudflare的连接。”根据和“此状态代码未在任何RFC中指定,但CloudFlare的反向代理使用它来表示源web服务器拒绝连接”根据或更长的时间,CloudFlare提供了详细解释,您看到CORS错误的唯一原因是大多数web服务器默认情况下不会向5xx(或4xx)添加额外的头错误响应。因此,当web服务器发送521响应时,您的CORS配置将被忽略。@sideshowbarker我不确定如何解决此问题。请确保请求不服务于错误。