MacOS上的React 16和Node 9.9。使用Webpack Dev Server进行测试。我正在尝试在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
我认为这与“预检”有关,但我不确定如何在狩猎后解决问题。找不到直接的答案。对于每种类型的请求,我都需要这个,而不仅仅是GET。如何从Axios将标头传递到服务器?
问题严格来说是webpack-dev-server吗?当我不使用它时,我会看到差异吗?如果它的制作会有所不同,我肯定想知道我的步骤是什么。
答案 0 :(得分:0)
对不起,我这个简单的错误。 OP中的中间件需要移动到中间件块之上,我实际上正在检查那些头值。我误解了它是如何工作的。现在好了!