我正在本地开发一个应用程序,我的 React 前端在我的网络端口 4000 上运行,我的 Node 后端在我的网络端口 5000 上运行。当我工作时,我可以完美地发出从前端到后端的每个请求我的 Macbook - 包括登录、发布新数据、编辑数据等 - 但是当我通过网络在 Pixel 2 上打开应用程序进行一些移动优化时,前端的登录和注册帖子什么也没做。这很奇怪,因为当我从移动浏览器访问端口 4000 时,前端的登录屏幕渲染得很好,而当我访问端口 5000 时,我从后端获得了预期的 JSON 响应,因此手机显然连接到了两者。我在请求周期中添加了几个三元组来检查实际发生了什么,一切正常,直到最后
.then
,此时来自服务器的响应应该由前端处理:
const handleSubmit = (e) => {
e.preventDefault()
setOne(true) /* <-- THIS TEST FIRES */
fetch(`${baseUrl}/users/signin`, {
method: "POST",
headers: {
"content-type": "application/json"
},
body: JSON.stringify({
email: email,
password: password
})
})
.then(setTwo(true)) /* <-- THIS TEST FIRES */
.then(resp => resp.json())
.then(setThree(true)) /* <-- THIS TEST FIRES */
.then((data) => {
setFour(true) /* <-- THIS TEST DOES NOT FIRE */
if (data.error) {
setError(true)
} else {
localStorage.qnToken = data.token
localStorage.qnTheme = data.result.theme
dispatch({type: "SET_USER", payload: data.result})
dispatch({type: "SET_NOTES", payload: data.result.notes})
history.push("/notes")
}
})
}
我在后端控制器的登录操作上也有一个
console.log
来显示 res
对象 - 当我从 Mac 登录时日志会正常触发,但当我尝试登录时根本不会触发从电话。
有点不知所措,你知道为什么这些帖子可以在我的 Mac 上运行,但不能在移动设备上运行吗?想知道是否是我的 MongoDB 数据库存在某种权限问题或其他问题?
你找到这个问题的解决方案了吗?因为我面临着同样的问题