Express、React 和 Webpack:CORS 预检问题 - 无法在 GET 中传递标头



macOS上的react 16和节点9.9。使用WebPack开发服务器进行测试。我正在尝试通过get请求通过标题,但他们没有完成。

在服务器上,我允许所有内容:

app.use((req, res, next) => {
    res.header("Access-Control-Allow-Origin", "*");
    res.header("Access-Control-Allow-Methods", "GET,HEAD,PUT,POST,DELETE,OPTIONS");
    res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept, value1, value2, value3");
    next();
});

我的客户请求是由Axios提出的,例如:

const request = axios({
    method: "GET",
    url: `http://my.api.co/endpoint`,
    headers: {
        "value1": "1",
        "value2": "2",
        "value3": "3"
    }
});

检查传入请求时,req.headers不包含这些值,但是我可以在请求中看到键(不是值(。

我看到:

req.headers.access-control-request-headers:"value1,value2,value3"

...在req.rawheaders中相同。但是我无法获得价值观 - 它们没有通过。我无法访问以下内容,例如:

req.headers.value1

我认为这有一些"前飞行"需要做的事情,但是不确定如何在狩猎后解决问题。找不到直接答案。对于每种类型的请求,我都需要这个,而不仅仅是得到。如何将标题从Axios传递到服务器?

严格存在WebPack-Dev服务器的问题吗?当我不使用它时,我会看到差异吗?如果生产会有所不同,我绝对想知道我的步骤是什么。

对不起,我的简单错误。OP中的中间件需要在中间件块上方移动,在那里我实际检查了这些标题值。我误解了它的工作原理。现在一切都很好!

最新更新