<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                # AJAX - 向服務器發送請求 * [XHR 創建對象](/ajax/ajax_xmlhttprequest_create.asp "AJAX - 創建 XMLHttpRequest 對象") * [XHR 響應](/ajax/ajax_xmlhttprequest_response.asp "AJAX - 服務器響應") **XMLHttpRequest 對象用于和服務器交換數據。** ## 向服務器發送請求 如需將請求發送到服務器,我們使用 XMLHttpRequest 對象的 open() 和 send() 方法: ``` xmlhttp.open("GET","test1.txt",true); xmlhttp.send(); ``` | 方法 | 描述 | | --- | --- | | open(_method_,_url_,_async_) | 規定請求的類型、URL 以及是否異步處理請求。 _method_:請求的類型;GET 或 POST _url_:文件在服務器上的位置 _async_:true(異步)或 false(同步) | | send(_string_) | 將請求發送到服務器。 _string_:僅用于 POST 請求 | ## GET 還是 POST? 與 POST 相比,GET 更簡單也更快,并且在大部分情況下都能用。 然而,在以下情況中,請使用 POST 請求: * 無法使用緩存文件(更新服務器上的文件或數據庫) * 向服務器發送大量數據(POST 沒有數據量限制) * 發送包含未知字符的用戶輸入時,POST 比 GET 更穩定也更可靠 ## GET 請求 一個簡單的 GET 請求: ``` xmlhttp.open("GET","demo_get.asp",true); xmlhttp.send(); ``` 在上面的例子中,您可能得到的是緩存的結果。 為了避免這種情況,請向 URL 添加一個唯一的 ID: ``` xmlhttp.open("GET","demo_get.asp?t=" + `Math.random()`,true); xmlhttp.send(); ``` 如果您希望通過 GET 方法發送信息,請向 URL 添加信息: ``` xmlhttp.open("GET","demo_get2.asp?fname=Bill&lname=Gates",true); xmlhttp.send(); ``` ## POST 請求 一個簡單 POST 請求: ``` xmlhttp.open("POST","demo_post.asp",true); xmlhttp.send(); ``` 如果需要像 HTML 表單那樣 POST 數據,請使用 setRequestHeader() 來添加 HTTP 頭。然后在 send() 方法中規定您希望發送的數據: ``` xmlhttp.open("POST","ajax_test.asp",true); xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded"); xmlhttp.send("fname=Bill&lname=Gates"); ``` | 方法 | 描述 | | --- | --- | | setRequestHeader(_header_,_value_) | 向請求添加 HTTP 頭。 _header_: 規定頭的名稱 _value_: 規定頭的值 | ## url - 服務器上的文件 open() 方法的 _url_ 參數是服務器上文件的地址: ``` xmlhttp.open("GET","ajax_test.asp",true); ``` 該文件可以是任何類型的文件,比如 .txt 和 .xml,或者服務器腳本文件,比如 .asp 和 .php (在傳回響應之前,能夠在服務器上執行任務)。 ## 異步 - True 或 False? AJAX 指的是異步 JavaScript 和 XML(Asynchronous JavaScript and XML)。 XMLHttpRequest 對象如果要用于 AJAX 的話,其 open() 方法的 async 參數必須設置為 true: ``` xmlhttp.open("GET","ajax_test.asp",`true`); ``` 對于 web 開發人員來說,發送異步請求是一個巨大的進步。很多在服務器執行的任務都相當費時。AJAX 出現之前,這可能會引起應用程序掛起或停止。 通過 AJAX,JavaScript 無需等待服務器的響應,而是: * 在等待服務器響應時執行其他腳本 * 當響應就緒后對響應進行處理 ## Async = true 當使用 async=true 時,請規定在響應處于 onreadystatechange 事件中的就緒狀態時執行的函數: ``` xmlhttp.onreadystatechange=function() { if (xmlhttp.readyState==4 && xmlhttp.status==200) { document.getElementById("myDiv").innerHTML=xmlhttp.responseText; } } xmlhttp.open("GET","test1.txt",true); xmlhttp.send(); ``` 您將在稍后的章節學習更多有關 onreadystatechange 的內容。 ## Async = false 如需使用 async=false,請將 open() 方法中的第三個參數改為 false: ``` xmlhttp.open("GET","test1.txt",false); ``` 我們不推薦使用 async=false,但是對于一些小型的請求,也是可以的。 請記住,JavaScript 會等到服務器響應就緒才繼續執行。如果服務器繁忙或緩慢,應用程序會掛起或停止。 注釋:當您使用 async=false 時,請不要編寫 onreadystatechange 函數 - 把代碼放到 send() 語句后面即可: ``` xmlhttp.open("GET","test1.txt",false); xmlhttp.send(); document.getElementById("myDiv").innerHTML=xmlhttp.responseText; ``` * [XHR 創建對象](/ajax/ajax_xmlhttprequest_create.asp "AJAX - 創建 XMLHttpRequest 對象") * [XHR 響應](/ajax/ajax_xmlhttprequest_response.asp "AJAX - 服務器響應")
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看