React JS发送POST请求无法返回token但Postman调用正常该如何解决?
问题排查与修复方案
当前代码的已知错误
- 请求参数缺失:你当前
body传入的是空对象,需要和Postman里raw格式填写的请求参数保持完全一致,把用户名、密码等必填参数补到JSON.stringify的对象中 - 未解析fetch返回的响应体:fetch返回的是
Response对象,必须调用.json()(如果接口返回JSON格式)或者.text()方法异步解析后才能拿到返回的token数据 - 返回值为未定义变量:你最后return的
aa没有声明赋值,属于未定义变量,自然拿不到预期值
其他常见排查方向
- 确认
apiLogin变量的值和Postman请求的地址完全一致,避免出现域名、路径、端口拼写错误 - 打开浏览器控制台的Network面板,查看请求是否存在CORS跨域报错:Postman不会做跨域校验,但浏览器会强制校验,这是Postman请求正常、前端请求异常的高频原因
- 查看请求的响应状态码:如果是4xx状态码一般是请求参数、请求头错误;如果是5xx状态码需要排查服务端问题
修正后的代码示例
export const apiCallToken = async () => { // 这里替换成Postman里实际传的所有请求参数 const requestParams = { username: "你的用户名", password: "你的密码" } const res = await fetch(apiLogin, { method: "POST", headers: { "Content-Type": "application/json", }, body: JSON.stringify(requestParams), }) // 解析响应体,假设接口返回JSON格式 const result = await res.json() // 这里根据接口实际返回的字段结构取token,比如result.data.token const token = result.token return token }
内容的提问来源于stack exchange,提问作者jlemosmusi
相关产品推荐
相关产品推荐

