簡體   English   中英

javascript url調用執行兩次

[英]javascript url call executing twice

我試圖在 javascript 警報框中顯示此 json 數據,但它顯示了兩次(相同的內容)。 它正在工作,但我不知道為什么它會顯示兩個警報。 (javascript 不是我的首選語言)。

這是來自名為的 URL 的響應:

{
  "type": "error",
  "response": {
    "message": "Could not start app"
  }
}

這是我正在使用的代碼:

<script type="text/javascript">
       
        function call() {
            const Http = new XMLHttpRequest();
            const url='https://url_to_get_the_response';
            Http.open("GET", url);
            Http.send();
            Http.onreadystatechange = (e) => {
                if (Http.responseText) {
                alert(Http.responseText);
               }
           }
    }
    </script>

我收到兩個警報,都包含相同的內容(.json 結果)。 我只想要其中之一。

我試過添加一個return; break call; if (Http.responseText)部分。 添加return; if語句中沒有做任何事情並添加了break call; 停止工作。

對此有何建議? 謝謝。

你的做法是正確的。 onreadystatechange事件會被多次觸發,因為readyState屬性從 API 調用的開始到結束都會發生變化。

XMLHttpRequest對象中的適當readyStatestatus值添加 if 條件。 解決這個問題。

您可以在此處閱讀有關這些屬性的更多信息readyState , status

 function call() { const Http = new XMLHttpRequest(); const url='https://jsonplaceholder.typicode.com/todos/1'; Http.open("GET", url); Http.send(); Http.onreadystatechange = (e) => { if (Http.readyState == 4 && Http.status == 200 && Http.responseText) { alert(Http.responseText); } } }
 <button onclick='call()'>Call</button>

暫無
暫無

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

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