有关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 框架。
答案 0 :(得分:23)
您是否安装了一个插件来启用/禁用浏览器上的cors?我做到了,这是我问题的根源。我卸载了它和http://evil.com'原始标题消失了。
答案 1 :(得分:2)
尝试为CORS关闭浏览器扩展程序。
答案 2 :(得分:0)
我花了大约50个小时解决了evil.com这个愚蠢的问题,终于找到了解决方案。 CORS chrome extension的作者是出于目的而这样做的,目的是使我们对cors的危险性有所关注。只需卸载此垃圾,一切都会正常。该死!
答案 3 :(得分:0)
此问题通常是由chrome中的CORS插件引起的。禁用插件可以为您解决问题。