【发布时间】:2020-03-17 11:58:42
【问题描述】:
当我尝试从 react 应用程序(构建 MERN 堆栈应用程序)中使用我的 NodeJS api 时,我收到了问题中提到的错误 “加载资源失败:服务器响应状态为 431 (Request Header Fields Too Large)”
邮递员的 api 工作正常
const onSubmit=async(e)=>{
e.preventDefault()
if(password!==password2){
console.log('passwords dont match')
}else{
const newUser={
name:name,
email:email,
password:password
}
try {
const config={
headers:{
'Content-Type':'application/json'
}
}
const body=JSON.stringify(newUser)
//axios has been set up as proxy
//http://localhost:3000
//we dont need to add the above to url
const res =await axios.post('/api/users',body,config)
console.log(res.data)
} catch (error) {
console.error(error.response.data)
}
}
}
【问题讨论】:
-
您是否正在发送一个非常大的 cookie?每个 Cookie 的最大大小为 4kb。
-
我只是从 udemy 课程中学习它,所以不知道如何检查 cookie 大小。我完全按照讲师所做的那样做。搜索谷歌,它告诉我从浏览器中清除 cookie,但这没有帮助
-
从邮递员那里工作正常。我得到一个令牌
-
奇数。这是我建议帮助调试的内容。在该路由的服务器端,执行
console.log(req.headers)。然后从邮递员发出请求,然后从你的 react 应用发出请求,看看有什么区别。 -
注意到了一件奇怪的事情。我的 nodejs 应用程序设置在端口 3000 上,react 应用程序设置在端口 5000 上,但是尽管使用了 "proxy":"localhost:3000" 在端口 5000 上发出了发布请求包.json
标签: node.js reactjs mongodb http http-headers