Home > Web Front-end > JS Tutorial > What to do if jquery ajax submits garbled code

What to do if jquery ajax submits garbled code

藏色散人
Release: 2022-12-30 11:11:15
Original
2311 people have browsed it

The solution to jquery ajax submission of garbled codes: 1. Unify the encoding settings; 2. Use the post method to pass parameters; 3. Escape encoding in the js front end and then decode in the background to obtain the data; 4. Globally Set the contentType and specify the encoding.

What to do if jquery ajax submits garbled code

The operating environment of this tutorial: windows7 system, jquery1.10.0 version, Dell G3 computer.

Recommended: jquery tutorial

jquery What should I do if ajax submits garbled data?

When I use jquery to process html5 applications, the test under firefox is normal. When the user accesses it with a pad, it says that there are garbled characters. I tested it myself and sure enough, and then found that under the chrome and ie kernel Everyone has this problem. When the page attribute is set to utf-8, only Firefox transmits the charset=utf-8 header file. Chrome and IE do not specify it, so garbled characters appear.

Solution:

The code is as follows:

$.ajaxSetup({
  contentType: "application/x-www-form-urlencoded; charset=utf-8"
});
$.post("test.php", { name: "i5a6", time: "2pm" },
   function(data){
     process(data);
   }, "json");
Copy after login

Or use:

The code is as follows:

$.ajax({
  url:url,
  type:"POST",
  data:data,
  contentType:"application/x-www-form-urlencoded; charset=utf-8",
  dataType:"json",
  success: function(){
    ...
  }
})
Copy after login

It is recommended to use the first one, However, it is based on your actual situation. Some people recommend using encodeURIComponent for character conversion.

Summarize some experience of garbled data submitted by ajax.

In order to avoid garbled characters, you can do the following steps

Solution

1. Keep the encoding unified, including file encoding, database encoding, and web page content-type encoding

Check

It is recommended to use UTF-8 for Chinese. Using gbk/gb2312 may cause garbled characters

2, use post to send instead of get

The get method will pass parameters through the link, and will automatically urlEncode (encode), and the encoding method of each browser may be different. Using post can avoid this situation.

3, by escaping the front-end encoding in js and then sending it, and then decoding it in the background to obtain the data

These can be searched online

4, set the contentType globally and specify the encoding

Because jquery ajax uses utf-8 to encode and send data, IE does not add charset=utf-8 when sending, resulting in garbled characters (IE uses iso-8859-1 encoding by default)

The code is as follows:

$.ajaxSetup({
 contentType: "application/x-www-form-urlencoded; charset=utf-8"
});
Copy after login

For more programming-related knowledge, please visit: Programming Teaching! !

The above is the detailed content of What to do if jquery ajax submits garbled code. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
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
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template