【发布时间】:2014-11-29 12:16:51
【问题描述】:
我设置了一个节点服务器并在激活 ssl(官方,非自分配证书)时收到错误消息。
错误信息:
XMLHttpRequest cannot load https://servername:8081/socket.io/... No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'https://servername' is therefore not allowed access. results:1
但实际上,我在 .htaccess 文件中包含了以下代码:
<IfModule mod_headers.c>
Header set Access-Control-Allow-Origin *
Header set Access-Control-Allow-Methods: "GET,POST,OPTIONS,DELETE,PUT"
</IfModule>
apache 头模块已安装。
我的服务器:
var fs = require('fs');
var https = require('https');
var express = require ('express');
var options = {
key: fs.readFileSync('path to key'),
cert: fs.readFileSync('path to cert'),
ca: fs.readFileSync('path to ca')
};
app = express()
https.createServer(options,app).listen(8081)
var io = require('socket.io')(https);
io.sockets.on('connection', function (socket) {
...
}
我的客户:
<script language="JavaScript">
var socket = io.connect('https://servername:8081');
socket.emit(...);
</script>
有人知道这里出了什么问题吗?提前致谢!
【问题讨论】:
标签: node.js websocket socket.io access-control