我有一个react应用程序,当用户点击登录时,它会调用一个API。然而,react native接收到的响应与预期的响应不同。
React Native代码:
login() {
this.setState({isLoading: true})
return fetch(process.env.API_USER + "/signin", {
method: "POST",
headers: {
Accept: "application/json",
"Content-Type": "application/json"
},
body: JSON.stringify({
username: this.state.username,
password: this.state.password
})
}).then((response) => {
console.log(`\n\n\n\nRESPONSE---->${JSON.stringify(response)}\n\n\n\n`)
this.setState({isLoading: false})
})
.catch((error) => {
console.log((`\n\n\n\nERROR---->${error}\n\n\n\n`))
this.setState({isLoading: false})
})
}
字符串
控制台响应:
响应->{"type ":" default "," status ":401," ok ":false," headers ":{" map":{"via ":" 1.1 vegur "," date ":" Thu,27 Sep 2018 18:10:42 GMT "," server ":"Cowboy","etag":"W/"17-wIxJlIRlPQbTEtBjbmLpTqPMWNo""," connection ":" keep-alive "," cache-control ":" public,max-age = 0","x-powered-by":"Express","content-length":"23","access-control-allow-credentials":"true","access-control-allow-origin":""," access-control-allow-methods":""," access-control-allow-headers":" Origin,Accept,Excell-Control-Allow-Headers,Origin,Accept,X-Requested-With,Content-Type,Excell-Control-Request-Method,请输入您的电子邮件地址,然后点击" http://www.example.com",然后点击" http://www.example.com"。abc.com
预期的API响应:
RESPONSE->{"message ":" Auth Fail "}
// ----------OR---------- //
型
RESPONSE->{"message ":" Auth验证"}
3条答案
按热度按时间gblwokeq1#
正如前面的答案所指出的,响应对象有一个
.json()
函数,它返回一个promise(解析为实际数据)。此外,您还可以使用
async
/await
更好地构建代码字符串
fiei3ece2#
在文档中定义了fetch请求的基本结构here。从文档中,你可以尝试这个
字符串
w7t8yxp53#
您需要另一个
.then
来解析响应并将其转换为JSON:字符串