• post请求和get请求存放参数位置
  • post请求和get请求存放参数位置是不同的:

  • post方式参数存放在请求数据包的消息体中。

  • get方式参数存放在请求数据包的请求行的URI字段中,以?开始以param=value&param2=value2的形式附加在URI字段之后。

  • 而request.setCharacterEncoding(charset);只对消息体中的数据起作用,对于URI字段中的参数不起作用。

    get用new String(target.trim().getBytes("ISO-8859-1"), charset);

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

get请求的参数

$.ajax({
url : SITE_PATH + "/userLogRecord/getList3?name1=name&name2=name2",
type : 'GET',
dataType : 'json',
data:{name3:"name3"},
success : function(data) {
console.log(111111);
},
error : function(msg) {
}
});

1、没有search也没有data,即标准的无参数get请求,这种既然没有参数,当然也就不涉及content-Type(请求参数data的数据类型)。

因此url+type就是必须得了,dataType视返回结果而定,常见的无非是两种,一种不用写,一种如上所示为json。

2、

有search没有data

没有search有data

有search也有data

这三种都是一样的,都会拼接在url后面以search的形式进行请求

$.ajax({
url : SITE_PATH + "/userLogRecord/getList3",
type : 'GET',
dataType : 'json',
success : function(data) {
console.log(1);
},
error : function(msg) {
console.log(0);
}
}); $.ajax({
url : SITE_PATH + "/userLogRecord/getList4?name1=name1&name2=name2&name3=name3",
type : 'GET',
dataType : 'json',
success : function(data) {
console.log(1);
},
error : function(msg) {
console.log(0);
}
}); $.ajax({
url : SITE_PATH + "/userLogRecord/getList5",
type : 'GET',
dataType : 'json',
data:{name1:"name1",name2:"name2",name3:"name3"},
success : function(data) {
console.log(1);
},
error : function(msg) {
console.log(0);
}
}); $.ajax({
url : SITE_PATH + "/userLogRecord/getList6?name1=name1",
type : 'GET',
dataType : 'json',
data:{name2:"name2",name3:"name3"},
success : function(data) {
console.log(1);
},
error : function(msg) {
console.log(0);
}
});

因此对于GET请求

1、放在URL后面和data里面都是一样的

2、放在data里面的数据不能转成JSON对象,应该使用JSON字符串

data:JSON.stringify({name3:"name3"}),

3、content-Type可以不设置,或者设置成默认值application/x-www-form-urlencoded,此时绝对不能使用contentType : 'application/json;charset=UTF-8',

   @RequestMapping(value = "/getList3", method = RequestMethod.GET)
@ResponseBody
public Map<String, Object> getList3() {
Map<String, Object> result = new HashMap<>();
result.put("status", "getList3");
return result;
} @RequestMapping(value = "/getList4", method = RequestMethod.GET)
@ResponseBody
public Map<String, Object> getList4(String name1, String name2,String name3 ) {
Map<String, Object> result = new HashMap<>();
result.put("status", "getList4");
result.put("name1", name1);
result.put("name2", name2);
result.put("name3", name3);
return result;
} @RequestMapping(value = "/getList5", method = RequestMethod.GET)
@ResponseBody
public Map<String, Object> getList5(String name1, String name2,String name3 ) {
Map<String, Object> result = new HashMap<>();
result.put("status", "getList5");
result.put("name1", name1);
result.put("name2", name2);
result.put("name3", name3);
return result;
} @RequestMapping(value = "/getList6", method = RequestMethod.GET)
@ResponseBody
public Map<String, Object> getList6(String name1, String name2,String name3 ) {
Map<String, Object> result = new HashMap<>();
result.put("status", "getList6");
result.put("name1", name1);
result.put("name2", name2);
result.put("name3", name3);
return result;
}

@ResponseBody(这个注解意味着这个方法的返回值不是页面名称,而是同一次请求的返回体(也就是服务器返回给客户端的数据))

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

POST请求的参数

对于放在URL后面的search,这个跟GET一样

但是对于data,有两种

一种是使用json字符串,不能使用JSON.stringify(({name3:"name3"}),contentType为默认值application/x-www-form-urlencoded

一种是使用json对象,必须使用JSON.stringify(({name3:"name3"}),contentType : 'application/json;charset=UTF-8',

$.ajax({
url : SITE_PATH + "/userLogRecord/getList?name1=name1",
type : 'POST',
async : false,
contentType : 'application/json;charset=UTF-8',
dataType : 'json',
data : JSON.stringify(parameter),
success : function(data) {
console.log(111111);
},
error : function(msg) {
}
}); $.ajax({
url : SITE_PATH + "/userLogRecord/getList1",
type : 'POST',
dataType : 'json',
data : {name1:"aa",name2:"aasfa"},
success : function(data) {
console.log(111111);
},
error : function(msg) {
}
}); $.ajax({
url : SITE_PATH + "/userLogRecord/getList2?name1=name&name2=name2",
type : 'POST',
dataType : 'json',
success : function(data) {
console.log(111111);
},
error : function(msg) {
}
}); $.ajax({
url : SITE_PATH + "/userLogRecord/getList21?name1=name&name2=name2",
type : 'POST',
dataType : 'json',
data:{name3:"name3"},
success : function(data) {
console.log(111111);
},
error : function(msg) {
}
});
  @RequestMapping(value = "/getList")
@ResponseBody
public Map<String, Object> getList(@RequestBody Map<String, Object> data , String name1) {
Map<String, Object> result = new HashMap<>();
result.put("status", "success1");
return result;
} @RequestMapping(value = "/getList1")
@ResponseBody
public Map<String, Object> getList1(String name1, String name2) {
Map<String, Object> result = new HashMap<>();
result.put("status", "success1-name1");
result.put("name1", name1);
result.put("name2", name2);
return result;
} @RequestMapping(value = "/getList2")
@ResponseBody
public Map<String, Object> getList2(String name1, String name2) {
Map<String, Object> result = new HashMap<>();
result.put("status", "success1-name1");
result.put("name1", name1);
result.put("name2", name2);
return result;
} @RequestMapping(value = "/getList21")
@ResponseBody
public Map<String, Object> getList21(String name1, String name2,String name3) {
Map<String, Object> result = new HashMap<>();
result.put("status", "success1-name1");
result.put("name1", name1);
result.put("name2", name2);
result.put("name3", name3);
return result;
}

1、传递json字符串的时候,POST请求的data并没有合到URL里面一起请求,但是在后台接收参数的时候,search和data都是通过同名参数直接接收的。

2、传递JSON对象的时候,需要用@RequestBody Map<String, Object> data,后台才能够接收到参数。

Ajax请求的参数的更多相关文章

  1. ajax请求在参数中添加时间戳

    ajax请求在参数中添加时间戳 参考网址

  2. Ajax请求传递参数遇到的问题

    想写个同类型的,代码未测. 什么是WebAPI?我的理解是WebAPI+JQuery(前端)基本上能完成Web MVC的功能,即:这么理解吧,WebAPI相当于Web MVC的后台部分. 接下来直接上 ...

  3. springmvc框架下ajax请求传参数中文乱码解决

    springmvc框架下jsp界面通过ajax请求后台数据,传递中文参数到后台显示乱码 解决方法:js代码 运用encodeURI处理两次 /* *掩码处理 */ function maskWord( ...

  4. WebAPI学习日记一:Ajax请求传递参数遇到的问题

    首先,本人大学刚毕业,想把自己学习的一些东西记录下来,也是和大家分享,如有不对之处还请多加指正.声明:但凡是我博客里的文章均是本人实际操作遇到的例子,不会随便从网上拷贝或者转载,本着对自己和观众负责的 ...

  5. ajax请求是参数问题

    Illegal invocation processData:false,processData用于对data参数进行序列化处理,默认值是true.默认情况下发送的数据将被转换为对象,如果不希望把Fi ...

  6. Jquery DataTables 服务器后端分页 Ajax请求添加自定义参数.

    项目使用AdminLTE(基于Bootstrap 二次开发的框架)作为开发框架. 使用DataTables 的时候部分页面需要传参 给后台做筛选过滤. 但是不知道怎么将DataTables的参数 和自 ...

  7. ajax请求参数为中文乱码的情况

    解决中文乱码问题的方法有很多. 一.前提是ajax请求传递参数对象到后台,对象中的某个参数的值为中文,到后台之后出现乱码,导致报错.问题解决如下: rest层: 二.在tomcat的server.xm ...

  8. ASP.NET MVC 使 Controller 的 Action 只接受 Ajax 请求。

    首先,ajax 请求跟一般的 web 请求本质是相同的,都是 http 请求.理论上服务器端是无法区分该次请求是不是 ajax 请求的,但是,既然标题都已经说了,那么肯定是有办法做的. 在 ajax ...

  9. 关于ajax请求,在参数中添加时间戳的必要性

    之前做项目的时候,看到别人的前端ajax请求代码中,都会带有一个时间戳类型的参数,当时随便查了一下,是为了防止浏览器缓存的原因,所以也没有进行深究,每次写的时候也习惯性的带一个,最近新项目中,我发现好 ...

随机推荐

  1. SSH中将hibernate托管给spring获取session的方法

    import org.hibernate.HibernateException; import org.hibernate.Session; import org.hibernate.SessionF ...

  2. 词项邻近 & 停用词 & 词干还原

    [词项邻近] 邻近操作符(proximity)用于指定查询中的两个词项应该在文档中互相靠近,靠近程度通常采用两者之间的词的个数或者是否同在某个结构单元(如句 子或段落)中出现来衡量. [停用词] 一些 ...

  3. c++程序的多文件组织

    当程序规模变大后,一个程序用多个文件组织,便于组织生产.这样,不必每次都重复对所有代码进行编译,而只需编译一次即可.把编译后所形成的目标文件保存起来,以后在需要时把它调出来直接与程序的目标文件相连接即 ...

  4. C# Action

    Action<T> Delegate Encapsulates a method that has a single parameter and does not return a val ...

  5. for 续4

    ---------siwuxie095             (四)tokens=x,y,m-n 显示指定的列     tokens=x 只显示第 x 列 tokens=x,y,z 只显示第 x,y ...

  6. linux 关闭电子邮件传输服务

    1.检查sendmail的哪些runlevel开启: chkconfig --list sendmail

  7. Qt Application Menu In Window and Mac

    Application Menu Application menu in different operator systems has different designed style. like W ...

  8. golang之map数据类型

    先上代码…… package main import "fmt" func testMap() { //两种声明map方式,切记,必须初始化才能用,否则panic //var a ...

  9. Markdown 手册

    前言(可以不看) 最开始只是想写一篇博文,准备使用markdown,感觉很流行(github.简书……很多都支持),而且渲染出来很好看,一直很想学,没有合适的机会,结果拖到了现在.比起什么python ...

  10. BZOJ 1001 狼抓兔子 (最小割转化成最短路)

    1001: [BeiJing2006]狼抓兔子 Time Limit: 15 Sec  Memory Limit: 162 MBSubmit: 27715  Solved: 7134[Submit][ ...