Home >Web Front-end >JS Tutorial >Difference between Jquery AJAX POST and GET_jquery
1: The GET access browser considers it to be idempotent
is the same URL with only one result [identical means that the entire URL string matches exactly]
So if the URL string does not change during the second visit, the browser will directly take out the result of the first visit
POST is considered to be a changing access (the browser thinks that the submission of POST must be changed)
To prevent GET’s idempotent access, just add after the URL? 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 Get and Post
Get method:
Using the get method, simple data can be transmitted, but the size is generally limited to 1KB. The data is appended to the URL and sent (HTTP header transmission), that is, the browser Append each form field element and its data to 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 parameters of the URL address. Transmission, the amount of data transmitted using POST method is much larger than that using GET method.
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 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" ;
Note 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 the entity There are parameter variables. Usually SetRequestHeader("Context-Type","application/x-www-form-urlencoded;") of the XmlHttpRequest object is used. 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, pay attention to var name=update.php?
abc&sex=man&age=18 and var name=?abc&sex=man&age=18 are both 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-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"];
AJAX garbled problem
Causes for garbled codes:
1. The default character encoding of the data returned by xtmlhttp is utf-8. If the client page is gb2312 or other encoded data, garbled codes will be generated
2 , the default character encoding for data submitted by the post method is utf-8. If the server side is gb2312 or other encoded data, garbled characters will be generated
The solutions are:
1. If the client uses gb2312 encoding, specify the output stream encoding on the server
2. Use both the server and the client 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 any url transfer involved parameters), the passed parameters must be processed by the encodeURIComponent method first. If not processed by encodeURIComponent, garbled characters will also be generated.