2012-01-16 63 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设置“标题”信息。

标头几乎是一个键/值对。它用于向目标服务器发送正在进行的请求的“元”信息。在你的特定实例中,它用来告诉服务器哪个内容类型用于这个请求。

相关问题