【问题标题】:Openshift CORS ERROR 'Access-Control-Allow-Origin' header contains multiple valuesOpenshift CORS ERROR 'Access-Control-Allow-Origin' 标头包含多个值
【发布时间】:2016-09-09 13:29:08
【问题描述】:

存在与 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
});

我正在使用 angularjsexpress 框架。

【问题讨论】:

标签: node.js socket.io cors openshift


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    尝试关闭 CORS 的浏览器扩展。

    【讨论】:

    • 呃...但随后浏览器将其阻止为 CORS 禁止跨域请求。扩展程序不应该解决这个问题吗?
    【解决方案3】:

    我在 evil.com 的这个愚蠢问题上花了大约 50 个小时,终于找到了解决方案。 CORS chrome extension 的作者这样做是为了让我们注意到 cors 的危险。只需卸载这些垃圾,一切都会正常工作。该死!

    【讨论】:

      【解决方案4】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-10-02
        • 2020-02-04
        • 2019-01-08
        • 2019-06-19
        • 2023-03-24
        • 2018-03-30
        • 2016-05-13
        相关资源
        最近更新 更多