Home > Web Front-end > JS Tutorial > How to deal with ajax parameters that are too long and cannot be submitted

How to deal with ajax parameters that are too long and cannot be submitted

php中世界最好的语言
Release: 2018-04-03 09:49:39
Original
2030 people have browsed it

This time I will show you how to deal with ajax parameters that are too long and cannot be submitted. What are the precautions for dealing with ajax parameters that are too long and cannot be submitted? The following is a practical case, let's take a look.

I checked a lot of information and said that the parameters of the get method are limited, but the length of the parameters of the post method is unlimited. This is also the advantage of post over get.

Use the post method in ajax and use the conventional parameter format: param1=a1¶m2=a2. When the parameter length is too long, the submission is still unsuccessful. For example, we often write an ajax

post request like this:

$.ajax({
  type: "post",  // post or get
  contentType:"application/json;charset=utf-8",
  data: “requestTag=”+tag+"&content="+content,  //请求参数
  url: "postMockJson",   //地址
  dataType: "text",
  error: function (err) {
   outLog("错误"+err);
  },
  success: onSaveSuccess
});
Copy after login
When used like this, we find that if parameter 2: content has too much content, for example, I am passing a relatively large text content , when I get it from the background service (I use

servlet):

String content= request.getParameter("content");

The value of content here is null.

There is also a quick way to check whether the ajax request is successful. Use the F12 developer tool to debug. After executing the ajax code, you can see the initiated request in the network options page in the F12 tool. , the requested parameters seen at this time have error prompts.

Solution:

There is another way to write the parameter format of ajax: the request parameter in json format, I can write it like this:

var param = "{requestTag:\""+requestTag+"\",content:\""+content+"\"}";(ps: pay attention to the correct json format)

At this time, if you use F12 for debugging, you can see that the data of the requested parameters are correct.

Then the question is, the content I get in the servlet is still null. Why is this? ? ?

Since the request parameter is a json data block, of course this request.getParameter("content") method cannot obtain the data because it will not parse the json data for us.

So where is the parameter data we pass?

Here’s the point: the data is all in the request object.

Then we use the most primitive method to obtain the transferred data through the data flow method, as follows:

request.setCharacterEncoding("UTF-8");
StringBuilder sb = new StringBuilder();
try(BufferedReader reader = request.getReader();) {
char[] buff = new char[1024];
int len;
 while((len = reader.read(buff)) != -1) {
  sb.append(buff,0, len);
  }
}catch (IOException e) {
   e.printStackTrace();
}
Copy after login
At this time, our json data is all in the sb object, next Just parse the json object:

JSONObject jobject = JSONObject.fromObject(sb.toString());
String requestTag = jobject.getString("requestTag");
String content = jobject.getString("content");
Copy after login
At this point, we can get the content.

I believe you have mastered the method after reading the case in this article. For more exciting information, please pay attention to other related articles on the php Chinese website!

Recommended reading:

How to deal with ajax cross-domain access error 501

Use Ajax to increase data based on the human resources system OA account method

The above is the detailed content of How to deal with ajax parameters that are too long and cannot be submitted. 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