3
我設置了一個節點服務器,並在激活ssl(官方,非自分配證書)時收到錯誤消息。使用ssl和Access-Control-Header的socket.io/node.js
錯誤消息:
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>
的阿帕奇頭模塊安裝。
我的服務器:
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>
沒有任何人有一個想法,這裏有什麼問題?提前致謝!
感謝你的回覆。它變得越來越好,但現在我得到了錯誤「[阻止]'https:// servername'頁面通過HTTPS加載,但運行不安全的內容'ws://servername/socket.io/?EIO = 3&transport = websocket&sid = HXfZn3PhvDcimhztAAAC':這個內容也應該通過HTTPS加載 socket.io.js:4519 未捕獲SecurityError:未能構造'WebSocket':不可能從通過HTTPS加載的頁面啓動不安全的WebSocket連接 – Ellen 2014-10-05 07:07:20
AND :當啓動節點服務器時,它說:「選項匹配原點協議無效。請參閱自述文件。「 – Ellen 2014-10-05 07:08:06