我正在尝试对服务器执行简单的GET请求。 URL是正确的,它使用python函数提供json。但是我无法在javascript中获得相同的数据。该功能有问题。
async function get_status(){
socket.send("Status!");
URL = http://127.0.0.1:8000/api/status/';
response = await fetch(URL, {
method: "GET",
headers: {
"Accept": "application/json"
}
})
socket.send(response.json());
console.log(response.json());
if (response.ok) {
current = document.getElementById("status");
current.value= response.json()["status"];
}
};
答案 0 :(得分:1)
请尝试:
const response = await fetch(URL);
if (response.ok) {
const json = await response.json();
console.log(json);
socket.send(json);
current = document.getElementById("status");
current.value= response.json()["status"];
} else {
console.log('request failed', response);
}
说明
fetch(URL)
返回Promise<Response>
,并且响应实现Body
接口,这意味着response.json()
返回另一个您应“等待”的承诺。
此外,只有响应返回response.json()
时,您才能提取ok
,这意味着此代码应在包装if (response.ok) { ...
内执行。
有关更多信息,请参见:https://www.npmjs.com/package/node-fetch#fetchurl-options