Openshift CORS ERROR'Access-Control-Allow-Origin'标头包含多个值

时间:2016-05-13 11:08:59

标签: node.js socket.io cors openshift

有关CORS的重复问题。但是没有一个解决方案适合我。我在Openshift Cloud上运行我的应用程序。我已经安装了cors npm包作为中间件。这是错误。

  

'Access-Control-Allow-Origin'标头包含多个值   'http://evil.com/,*',但只允许一个。起源   因此,“http://my-app-name.rhcloud.com”不允许访问。

服务器端代码

var app = express();
var server = require('http').Server(app);
var io = require('socket.io').listen(server);
var cors = require('cors');
app.use(cors());

//rest of the code

var server_port = process.env.OPENSHIFT_NODEJS_PORT || 8080;
var server_ip_address = process.env.OPENSHIFT_NODEJS_IP || '127.0.0.1';
server.listen(server_port, server_ip_address);

客户端代码

var socket = io.connect('http://my-app-name.rhcloud.com:8000/',{
    'forceNew':true
});

我正在使用 angularjs express 框架。

4 个答案:

答案 0 :(得分:23)

您是否安装了一个插件来启用/禁用浏览器上的cors?我做到了,这是我问题的根源。我卸载了它和http://evil.com'原始标题消失了。

答案 1 :(得分:2)

尝试为CORS关闭浏览器扩展程序。

答案 2 :(得分:0)

我花了大约50个小时解决了evil.com这个愚蠢的问题,终于找到了解决方案。 CORS chrome extension的作者是出于目的而这样做的,目的是使我们对cors的危险性有所关注。只需卸载此垃圾,一切都会正常。该死!

答案 3 :(得分:0)

此问题通常是由chrome中的CORS插件引起的。禁用插件可以为您解决问题。