下面是chrome和mozilla的不同问题。
Mozilla:
阻止的跨源请求:相同源策略
不允许读取domain.com上的远程资源
铬:
err_ssl_version_或_cipher_不匹配
我查了很多,但没有找到解决办法。
下面是我如何在服务器上创建密钥
openssl genrsa -out server-key.pem 1024
openssl req -new -key server-key.pem -out server-csr.pem
openssl x509 -req -in server-csr.pem -signkey server-key.pem -out server-cert.pem
php文件代码:
<script>
var socket = io.connect( 'https://'+window.location.hostname+':3000' , {
secure: true // for SSL
});
socket.on( 'message', function( data ) {
if(curkey == data.key)
{
$('#notif_audio')[0].play();
$( "#tbids" ).html( data.message ).css('color', '#a94442');
}
});
</script>
节点文件代码:
var express = require('express');
var app = express();
//var server = require('https').createServer(app);
var https = require("https");
var fs = require("fs");
app.use(function(req, res, next) {
res.header("Access-Control-Allow-Origin", "*");
res.header('Access-Control-Allow-Methods', 'DELETE, PUT');
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
if ('OPTIONS' == req.method) {
res.sendStatus(200);
}
else {
next();
}
});
var options = {
key: fs.readFileSync("server-key.pem"),
cert: fs.readFileSync("server-cert.pem")
}
var server = https.createServer(app, options);
var io = socket.listen( server );
var port = process.env.PORT || 3000;
io.set('origins', '*:*');
server.listen(port, function () {
console.log('Server listening at port %d', port);
});
io.on('connection', function (socket) {
socket.on( 'message', function( data ) {
io.sockets.emit( 'message', {
new_count_message: data.new_count_message,
key: data.key
});
});
});
在cli上,node server.js工作正常,没有任何错误。意思是有
节点文件中没有错误。
注意:-我已经用http在本地主机上成功地设置了这段代码。
请帮助我解决这个问题。