GET请求的响应主体为空

时间:2020-05-20 16:05:58

标签: javascript

我正在尝试对服务器执行简单的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"];
             }
        };

1 个答案:

答案 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