2012-01-16 62 views
9

我在學習AJAX的時候偶然發現了這個命令。誰做的教程沒有解釋該命令的人,做什麼的命令裏面的參數的含義,它用於...下面是我用它的代碼是什麼:什麼是'xmlhttp.setRequestHeader();'並在哪些情況下使用?

<script type="text/javascript"> 

     function insert(){ 
      if(window.XMLHttpRequest){ 
       xmlhttp = new XMLHttpRequest(); 
      }else{ 
       xmlhttp = new ActiveXObject('Microsoft.XMLHTTP'); 
      }; 

      xmlhttp.onreadystatechange = function(){ 
       if(xmlhttp.readyState == 4 && xmlhttp.status == 200){ 
        document.getElementById('message').innerHTML = xmlhttp.responseText; 
       }; 
      }; 

      parameters = 'insert_text='+document.getElementById('insert_text').value; 

      xmlhttp.open('POST','ajax_posting_data.php',true); 
      xmlhttp.setRequestHeader('Content-type', 'application/x-www-form-urlencoded'); 
      xmlhttp.send(parameters); 
     }; 

    </script> 
+4

我建議你扔掉那個教程並使用jQuery。你的代碼不僅會產生不必要的全局變量,而且比jQuery更復雜。除此之外,如果文本字段包含「&」字符,則查詢字符串將會中斷。 – ThiefMaster 2012-01-16 16:02:51

+3

該文檔位於:http://www.w3.org/TR/XMLHttpRequest/#the-setrequestheader-method – talnicolas 2012-01-16 16:03:40

+6

該操作系統詢問使用原生JavaScript而不是jQuery,那麼爲什麼要告訴他們放棄他們現有的解決方案。我喜歡學習原生JavaScript是如何工作的,所以你可以通過使用jQuery來理解權衡,做出更明智的決定。而「僅僅使用jQuery」不會解釋請求標頭的性質。 – gregturn 2015-08-19 18:47:26

回答

14

HTTP是一種協議。該協議的一部分是請求標頭的概念。當xhr發生時,文本在客戶端和服務器之間交換。請求標頭是客戶端發送到服務器的文本的一部分。

這是一種設置請求標頭的方法。你看到的參數是

1)的標題設置(在這種情況下,內容類型
2)標頭值。 (在這種情況下,X WWW的窗體-urlencoded

See this for more info.

+0

我知道requestHeaders是什麼,但是當我需要在沒有jQuery的應用上插入請求頭時,我的確發現這個例子很有用。 – gregturn 2015-08-19 18:48:09

0

它設置內容類型HTTP標頭包含來自形式發送的URL編碼數據。

3

這正是它所說的。它會爲下一個XMLHttpRequest設置「標題」信息。

標頭幾乎是一個鍵/值對。它用於向目標服務器發送正在進行的請求的「元」信息。在你的特定實例中,它用來告訴服務器哪個內容類型用於這個請求。

相關問題