Я создаю приложение с реакцией на стороне клиента и nodejs на стороне сервера.
, когда я пытаюсь извлечь данные с помощью запроса PATCH из приложения nodejs, я получаю эту ошибку:
однако, если я переключаю метод (например, на POST), я не получаю ошибок.
код, когда происходит ошибка:
клиент:
fetch("http://127.0.0.1:8080/api/userr", {
method: "patch",
body: {
sessionID: this.state.sessionID,
field: input.id,
[input.id]: input.value
},
}
nodejs:
app.patch("/api/userr", (req, res) => {
console.log(req.body);
res.send({a: 2})
})
код, когда ошибка не возникает:
клиент:
fetch("http://127.0.0.1:8080/api/userr", {
method: "post",
body: {
sessionID: this.state.sessionID,
field: input.id,
[input.id]: input.value
},
}
nodejs:
app.post("/api/userr", (req, res) => {
console.log(req.body);
res.send({a: 2})
})
У меня также есть промежуточное программное обеспечение для включения CORS. Я попытался включить CORS с помощью библиотеки cors, но безуспешно
app.use((req, res, next) => {
res.header('Access-Control-Allow-Origin', '*');
res.header('Access-Control-Allow-Headers', '*');
if (req.method === 'OPTIONS') {
res.header('Access-Control-Allow-Headers', 'Origin, X-Requested-With, Content-Type, Accept, Authorization');
res.header('Access-Control-Allow-Methods', '*');
res.header('Access-Control-Allow-Credentials', true);
return res.status(200).json({});
};
next();
});
Я думаю, что эта ошибка связана с CORS, потому что когда я использую стороннее приложение, такое как почтальон, оно работает нормально. Я проверил, что произойдет, если я отправлю запрос OPTIONS на URL, но все выглядело хорошо. это ответ, который я получил.
"X-Powered-By": "Express"
"Access-Control-Allow-Origin": "*"
"Access-Control-Allow-Headers": "Origin X-Requested-With Content-Type Accept Authorization"
"Access-Control-Allow-Methods": "*"
"Access-Control-Allow-Credentials": "true"
"Content-Type": "application/json; charset=utf-8"
"Content-Length": "2"
"ETag": "W/\"2-vyGp6PvFo4RvsFtPoIWeCReyIC8\""
"Date": "Sun 12 Apr 2020 14: 50: 07 GMT"