Home >Backend Development >PHP Tutorial >The difference between get method and post method in Ajax

The difference between get method and post method in Ajax

巴扎黑
巴扎黑Original
2016-12-01 11:45:051841browse

1. The basic difference between get() and post()

1.get adds the parameter data queue to the URL pointed to by the ACTION attribute of the submitted form. The value corresponds one-to-one to each field in the form, which can be seen in the URL. arrive. Post uses the HTTP post mechanism to place each field in the form and its content in the HTML HEADER and transmit it to the URL address pointed to by the ACTION attribute. Users cannot see this process.

2. For the get method, the server side uses Request.QueryString to obtain the value of the variable. For the post method, the server side uses Request.Form to obtain the submitted data. Parameters in both ways can be obtained using Request.

3. The amount of data transferred by get is small and cannot be larger than 2KB. The amount of data transmitted by post is relatively large and is generally unrestricted by default. But in theory, it varies from server to server.

4.get has very low security, while post has high security.

5.412d5786ff2d0c10023650eaf264474e is the same as 4d1fcb0ca7c733fbcb929eab61bf6a5e, that is to say , when the method is get, the parameter list at the end of the action page will be ignored; and 207ffcbabfe9e526ee1296c52f760a50 and 203a53a916a8563e2ad0618999893b26 is different.

2. Talk about the difference between Ajax Get and Post

1. Get method
Use the get method to transmit simple data, but the size is generally limited to 1KB. The data is appended to the url and sent (http header transmission), that is That is, the browser appends each form field element and its data to the end of the resource path in the request line in the format of URL parameters. The most important thing is that it will be cached by the client's browser, so others can read the customer's data, such as account number and password, etc. from the browser's history. Therefore, in some cases, the get method can cause serious security issues.

Ajax send request: If it is a get request send (parameter) parameter: must be null or xhr.send();

It is not necessary to set xhr.setRequestHeader(header, value) for get request (Parameter); When the parameter is not empty, it will be automatically converted to the post request method. You can obtain the request method through the request.getMethod(); method

Example:

function getAjax(){ 
     //获取xhr对象
     var xhr = getXhr();
        //规定请求类型     
     xhr.open("get","main.jsp?username=123",true);
     xhr.onreadystatechange = function (){
          //判读是否处理完毕
          if(xhr.readyState==4){
               //判读服务器是否处理成功!
              if(xhr.status==200){
                    alert(xhr.responseText);
              }
          }
                } 
}

Be careful when using the get method

(1) For get For requests (or any involving url passing parameters), the passed parameters must first be processed by the


encodeURIComponent method. Example: var url = "update.php?username=" +encodeURIComponent(username) + "&content=" + encodeURIComponent

(content)+"&id=1" ;

2.Post method:

When using the POST method, the browser sends each form field element and its data to the Web server as the entity content of the HTTP message instead of Passed as a parameter of the URL address, the amount of data transmitted using the POST method is much larger than the amount of data transmitted using the GET method


Send request: If it is a post request send (parameter) parameter: the parameter can be null or

xhr .send()|send (with parameters) post request must set xhr.setRequestHeader(header,value) when passing value The Context-Type is application/x-www-form-

urlencode ensures that the server knows that there are parameter variables in the entity. Usually use the

SetRequestHeader("Context-Type","application/x-www-form-urlencoded of the XmlHttpRequest object ;"). Example:

xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded")
(2). The parameters are key-value pairs with one-to-one name/value correspondence, and each pair of values ​​uses an ampersand. Separate. For example, var name=abc&sex=man

&age=18 Note that var name=update.php?abc&sex=man&age=18 and var name=?abc&sex=man

&age=18 are both written incorrectly;

( 3). Parameters are sent in the Send (parameter) method, for example: xmlHttp.send(name); If it is the get method, directly xmlHttp.send(null);


(4). Server-side request parameters distinguish between Get and Post . If it is the get method, then $username = $_GET["username"]; If it is the post method, then $username = $_POST["username"];

In short, the GET method transmits a small amount of data and has high processing efficiency. The security is low and will be cached, while the opposite is true for POST.

9b21ee6b58e97765e2a3d44fcda3f6db

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn