我正在处理我的应用程序。我正在尝试使用fetch登录页面,但我真的不明白如何使用fetch甚至阅读一些代码示例。有人可以帮助我吗?
例如,我必须使用这些信息登录我的服务器。 用户名:“user” 密码:“1234”
然后我希望服务器返回登录成功与否,如果登录成功则返回令牌
我尝试使用此代码
render() {
return (
fetch('mysite', {
method: 'POST',
body: JSON.stringify({
username: "user",
password: "1234",
})
})
.then((response) => response.json())
.then((responseJson) => { return responseJson.success; })
.catch((error) => {
console.error(error); })
);
}
我不知道如何返回成功和令牌信息。 这个抓取是否有标题?其实我不知道如何放置这段代码。在渲染部分的回报中使用它是真的吗?
感谢您的推荐。
答案 0 :(得分:2)
您不应该在render()函数中调用fetch函数,当发生由props或state更改引起的更新时,将调用此render函数。如果你这样做,一次又一次地会多次调用获取请求。正确的工作流程如下:
因此你应该将你的获取结果保持在一个状态,然后在渲染函数中渲染该状态,伪代码如下:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("DistMatrix")) Is Nothing Then
Dim out1() As Double
out1 = OutStat(bucket(Target), Range("RegScale"))
FwdOut = outright(bucket(Target), Range("RegScale"))
Call NewScatter(FwdOut, out1)
End If
End Sub
答案 1 :(得分:1)
获取请求的初始响应是'Response'对象,请参阅:https://developer.mozilla.org/en-US/docs/Web/API/Response,也许您对Response.headers,Response.ok,Response.status或Response.statusText字段感兴趣?
您可以在第一个.then回调函数中访问响应的字段。在您的示例中,您只是调用'response.json()',它返回另一个promise,当在第二个.then回调中解析时,这将导致从响应对象的JSON响应体中解析对象。在您的示例中,您将从JSON对象返回“success”属性,这是否在JSON响应中是预期的?
MDN在这里使用fetch有一些很好的例子:https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch