gpt4 book ai didi

reactjs - 为什么即使登录失败,React Native fetch 总是返回 200?

转载 作者:行者123 更新时间:2023-12-03 14:13:53 25 4
gpt4 key购买 nike

我使用这些代码来发布数据以登录

postJson(url, data, callback){
var fetchOptions = {
method: 'POST',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body:data
};
console.log('begin request');
fetch(url, fetchOptions)
.then((response) => {
responseJson = response.json()
console.log(responseJson, response.status)
callback(responseJson)
})
.catch((error) => {
console.error(error);
});
}

但是当我使用它时很奇怪

postJson(url, formData, (responseJson) => {
if (responseJson == 200){
console.log(responseText)
this.onLoginSuccess();
}
else{
alert('fail');
}
})

响应代码始终为200,但登录失败。我已经用postman测试了api,效果很好。 enter image description here

实际上console.log(responseJson, response.status)得到的是

Promise {
"_40": 0,
"_55": null,
"_65": 0,
"_72": null,
} 200

更新:此问题是由服务器端的基本身份验证引起的。只需添加编码即可解决此问题。谢谢

最佳答案

就像 console.log 的输出所建议的那样。 response.json 返回一个应该被解析的 promise 。您应该链接另一个 .then 来解决 promise 。

供引用https://developer.mozilla.org/en-US/docs/Web/API/Body/json

例如:

...
.then((response) => response.json())
.then(json => callback(json))

希望有帮助。

关于reactjs - 为什么即使登录失败,React Native fetch 总是返回 200?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45094097/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com