Home >Web Front-end >JS Tutorial >A brief analysis of the usage differences between Jquery AJAX POST and GET

A brief analysis of the usage differences between Jquery AJAX POST and GET

巴扎黑
巴扎黑Original
2017-07-03 10:33:291221browse

This article is about the difference between AJAX POST and GET in Jquery. A detailed summary and introduction has been made. Friends who need it can come and refer to it. I hope it will be helpful to everyone.

1: GET access browser thinks it is idempotent
is the same URL with only one result [the same refers to the entire URL string matches exactly]
Therefore, if the URL string does not change during the second visit, the browser will directly take it out The result of the first visit

POST is considered to be a changing visit (the browser believes that the submission of POST must have changed)

Prevents the idempotent access of GET right behind the URL Plus? +new Date();, [In short, it makes the URL string different for each visit]

This principle should also be followed when designing WEB pages

2: 1. Talk about the difference between Ajax's Get and Post

Get method:
The get method can be used to transmit simple data, but the size is generally limited to 1KB Next, the data is appended to the URL and sent (HTTP header transmission), that is to say, 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.

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, rather than as a URL address. Parameters are passed, and the amount of data transmitted using POST is much larger than that transmitted using GET.

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

When using the get method, please note:
1 For get requests (or any involving url transfer 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" ;


Notes when using the Post method:
1. Set the Context-Type of the header to application/x-www-form-urlencode to ensure that the server knows that there are parameter variables in the entity. Usually use XmlHttpRequestObject's SetRequestHeader("Context-Type","application/x-www- form-urlencoded;"). Example:

xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
2. The parameters are key-value pairs corresponding to name/value. Each Use ampersands to separate values. 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 in the same way. It is wrong;
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 TerminalRequest parametersDistinguish between Get and Post. If it is the get method, then $username = $_GET["username"]; If it is the post method, then $username = $_POST["username"];

AJAXGarbled characters Problem

#Reasons for garbled characters:
1. The default character encoding of the data returned by xtmlhttp is utf-8. If the client page is gb2312 or other encoded data will produce garbled characters
2. The default character encoding of data submitted by the post method is utf-8. If the server side is gb2312 or other encoded data, garbled characters will be produced

The solutions are:
1. If the client is gb2312 encoding, specify the output stream encoding on the server
2. Both the server and the client use utf-8 encoding

gb2312:header('Content-Type:text/html;charset=GB2312');

utf8:header('Content-Type:text/html;charset=utf-8');

Note:If you have done the above method and still return garbled characters, check whether your method is get. For get requests (or anything involving URL passes parameters), the passed parameters must first be processed by the encodeURIComponent method. If not processed by encodeURIComponent, garbled characters will also be generated.

The above is the detailed content of A brief analysis of the usage differences between Jquery AJAX POST and GET. For more information, please follow other related articles on the PHP Chinese website!

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