ASP.NET API在React Native与Postman中POST请求返回结果不一致
问题原因与解决方案
核心问题
你的React Native代码中,response.json()是异步操作,返回的是Promise对象,直接console.log(response.json())只会打印Promise实例,而非实际的JWT令牌。Postman会自动完成响应解析流程,因此能直接展示令牌内容。
修复后的客户端代码
修改Login方法,等待response.json()完成解析:
Login = async (user: UserLoginDTO) => { try { console.log(API + "/auth/login") const response = await fetch(API + "/auth/login", { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(user) }); if (!response.ok) { throw new Error('Failed to login user'); } // 等待JSON解析完成,获取实际令牌 const token = await response.json(); console.log(token); } catch (error){ console.log('Handled Error When Login:', error); } }
额外验证事项
- 确认后端返回格式:ASP.NET的
Ok(token)会将字符串令牌包装为JSON格式返回,response.json()解析后会得到字符串类型的令牌,与Postman返回内容一致。 - 检查请求地址:若使用模拟器测试,
localhost需替换为10.0.2.2(Android)或localhost/127.0.0.1(iOS),确保请求能正确到达后端服务。
内容的提问来源于stack exchange,提问作者Laurent K
相关产品推荐
相关产品推荐

