在Openshift上使用socket.io发生奇怪的跨源请求问题

时间:2013-12-23 22:13:07

标签: node.js sockets cross-domain socket.io

我的应用程序在localhost上完美运行,但当我将它推送到OpenShift时,我遇到了socket.io的这个问题

XMLHttpRequest cannot load http://test-jackguy.rhcloud.com:8000/socket.io/1/?t=1387836069741. Origin http://test-jackguy.rhcloud.com is not allowed by Access-Control-Allow-Origin. 

我不明白为什么会出现Access-control-allow-origin问题。根据OpenShift的WebSockets说明,我在客户端使用以下URL:

var socket = io.connect('ws://test-jackguy.rhcloud.com:8000/');

在服务器上,我有以下代码:

var express = require('express');
var app = express();
var server = app.listen(process.env.OPENSHIFT_INTERNAL_PORT || process.env.OPENSHIFT_NODEJS_PORT || 8080, process.env.OPENSHIFT_INTERNAL_IP || process.env.NODEJS_IP);
var io = require('socket.io').listen(server, { log: false });
    io.set('log level', 1);
    io.set("transports", ["websocket"]);

我的目录结构如下所示:

/application
    server.js
    /public
        /slsd
            index.html
            /js
                script.js

其中script.js是客户端连接,server.js是服务器文件。

这是URL。 http://test-jackguy.rhcloud.com/slsd/任何人都知道什么是错的?

0 个答案:

没有答案