什么是'xmlhttp.setRequestHeader()'以及在哪些情况下使用

What is 'xmlhttp.setRequestHeader();' and in which situations is it used?

本文关键字:情况下 xmlhttp setRequestHeader 什么      更新时间:2023-09-26

我在学习AJAX时偶然发现了这个命令。制作教程的人没有解释这个命令,命令中的参数是什么意思,它的用途是什么。。。以下是我在中使用的代码

<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>

HTTP是一种协议。该协议的一部分是请求头的概念。当xhr发生时,客户端和服务器之间会交换文本。请求头是客户端发送给服务器的文本的一部分。

这是一种设置请求头的方法。你看到的论点是

1) 要设置的标头(在本例中为内容类型
2) 标头值。(在这种情况下,x-www-form-urlencoded

查看此以了解更多信息。

HTTP请求是根据设置的例程("协议"-此处为HyperTextT&strong>transferp协议)从一个计算机系统传递到另一个计算机的消息,目的是执行发送数据、请求发回数据、更新以前发送的数据等操作。

报头基本上是关于HTTP请求主体中的数据的一段信息。它的目的是告诉接收请求的机器请求正文中包含的数据类型、格式、使用的语言、是否设置cookie、日期、主机等。

一个HTTP请求上可以放置多个标头,每个标头都有一个"名称"和一个"值"组件。在网页上,它们看起来像

<meta name="........" content="............."/>

您可以在元素中的网页顶部下方找到它们。

为了使人们能够从JavaScript函数中发送HTTP请求,我们创建了一个新的XMLHttpRequest对象,就像您的代码使用一样

const xmlhttp = new XMLHttpRequest();

您打算向这个新的空对象添加数据。尽管名称不同,XMLHttpRequest还允许以XML以外的多种格式发送数据,例如HTML代码、文本、JSON等="字符和每个数据/值配对将与下一个配对分开一个"0"&quot;性格这种格式被称为URL编码。

我们必须告诉接收计算机HTTP请求体中的数据是如何编码的。有一个标准标头来传达这一点,并通过方法setRequestHeader(..)将其添加到请求中。此方法使用两个参数,标头名称和标头值。所有这些操作都是在线路中实现的

xmlhttp.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');

setRequestHeader(。

open(…)方法定义:(1)HTTP请求的类型,例如GET/POST/PUT等;(2) 包含该请求的处理脚本的网页,例如一些.php文件或Node.js请求端点,该端点对后端数据库进行适当的查询;以及(3)请求动态的性质,例如,异步请求被分配一个值"true",同步请求被分配"false"。

send(.)方法将要发送的数据附加到请求的正文中,在您的情况下,是名为"parameters"的变量。

关于在哪些情况下使用setRequestHeader(..)这一更广泛的问题,我想说它在大多数HTTP请求情况下都会使用。但是,添加到HTTP请求主体中的某些类型的数据会调用"内容类型"标头的默认设置。

这正是它所说的。它将为下一个XMLHttpRequest设置一个"标题"信息。

标头基本上是一对键/值。它用于向正在进行的请求的目标服务器传输"元"信息。在您的特定实例中,它用于告诉服务器此请求使用的内容类型。

它将内容类型HTTP标头设置为包含从表单发送的url编码数据。