我正在本地开发一个应用程序,我的 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 数据库的某种权限问题还是什么?