簡體   English   中英

GET 請求的響應體為空

[英]Response body of GET request is empty

我正在嘗試向我的服務器發出一個簡單的 GET 請求。 URL 是對的,它使用 python ZC1C425268E68385D1AB5074C17A94 給出 json。 但我無法在 javascript 中獲得相同的數據。 這個 function 有問題。

        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"];
             }
        };

請嘗試:

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>並且 Response 實現了Body接口,這意味着response.json()返回另一個 promise 你應該“等待”。

此外,只有當響應返回ok時,您才能獲取response.json() ,這意味着該代碼應該在包裝內執行if (response.ok) {...

有關更多信息,請參閱: https://www.npmjs.com/package/node-fetch#fetchurl-options

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM