Ajax请求的参数
- post请求和get请求存放参数位置
post请求和get请求存放参数位置是不同的:
post方式参数存放在请求数据包的消息体中。
get方式参数存放在请求数据包的请求行的URI字段中,以?开始以param=value¶m2=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请求的参数的更多相关文章
- ajax请求在参数中添加时间戳
ajax请求在参数中添加时间戳 参考网址
- Ajax请求传递参数遇到的问题
想写个同类型的,代码未测. 什么是WebAPI?我的理解是WebAPI+JQuery(前端)基本上能完成Web MVC的功能,即:这么理解吧,WebAPI相当于Web MVC的后台部分. 接下来直接上 ...
- springmvc框架下ajax请求传参数中文乱码解决
springmvc框架下jsp界面通过ajax请求后台数据,传递中文参数到后台显示乱码 解决方法:js代码 运用encodeURI处理两次 /* *掩码处理 */ function maskWord( ...
- WebAPI学习日记一:Ajax请求传递参数遇到的问题
首先,本人大学刚毕业,想把自己学习的一些东西记录下来,也是和大家分享,如有不对之处还请多加指正.声明:但凡是我博客里的文章均是本人实际操作遇到的例子,不会随便从网上拷贝或者转载,本着对自己和观众负责的 ...
- ajax请求是参数问题
Illegal invocation processData:false,processData用于对data参数进行序列化处理,默认值是true.默认情况下发送的数据将被转换为对象,如果不希望把Fi ...
- Jquery DataTables 服务器后端分页 Ajax请求添加自定义参数.
项目使用AdminLTE(基于Bootstrap 二次开发的框架)作为开发框架. 使用DataTables 的时候部分页面需要传参 给后台做筛选过滤. 但是不知道怎么将DataTables的参数 和自 ...
- ajax请求参数为中文乱码的情况
解决中文乱码问题的方法有很多. 一.前提是ajax请求传递参数对象到后台,对象中的某个参数的值为中文,到后台之后出现乱码,导致报错.问题解决如下: rest层: 二.在tomcat的server.xm ...
- ASP.NET MVC 使 Controller 的 Action 只接受 Ajax 请求。
首先,ajax 请求跟一般的 web 请求本质是相同的,都是 http 请求.理论上服务器端是无法区分该次请求是不是 ajax 请求的,但是,既然标题都已经说了,那么肯定是有办法做的. 在 ajax ...
- 关于ajax请求,在参数中添加时间戳的必要性
之前做项目的时候,看到别人的前端ajax请求代码中,都会带有一个时间戳类型的参数,当时随便查了一下,是为了防止浏览器缓存的原因,所以也没有进行深究,每次写的时候也习惯性的带一个,最近新项目中,我发现好 ...
随机推荐
- python 发送带附件的 邮件
from email.MIMETextimportMIMETextfrom email.MIMEMultipartimportMIMEMultipartimport smtplib mail_host ...
- [ShaderStaff] 圆角矩形效果实现
操作系统:Windows8.1 显卡:Nivida GTX965M 开发工具:Unity2017.3 | Shader 最近在制作一款APP,其中需要对矩形图片资源的展现进行圆角化,看了一下网上的方案 ...
- Oracle的服务端_默认_启动的服务
- for 续6
---------siwuxie095 for 实际运用样例(/f 的使用不列出来): for %%i in (*) do echo %%i 显示当前目录下 ,所有非文 ...
- Halcon中的坐标系特点及XLD的镜像转换
我们知道,Halcon中的坐标系的原点在左上角,而一般二维平面坐标系的原点在左下角.那么Halcon中坐标系和一般的二维坐标系有什么区别呢?我通过下面这个例子来分析. gen_image_const ...
- Golang之实现一个负载均衡算法(随机,轮询)
代码记录 程序结构目录 --------程序包 package balance type Balancer interface { DoBalance([]*Instance, ...string) ...
- PHP实现一维数组转二维数组的方法
具体实现方法如下: <?php $asr[1] = array("a","b","c","d"); $asr[2] ...
- python virtualenv环境安装(ubuntu)
测试系统ubantu16.04 该系统已经默认安装了python3.5, 当然了python2.7也同时存在着. 可以用如下命令安装pip(如下命令会默认安装pip到python2.7库中) $ su ...
- 图灵社区 书单推荐:成为Java顶尖程序员 ,看这11本书就够了
java书单推荐 转自 http://www.ituring.com.cn/article/211418 “学习的最好途径就是看书“,这是我自己学习并且小有了一定的积累之后的第一体会.个人认为看书有两 ...
- Mybatis之是如何执行你的SQL的(SQL执行过程,参数解析过程,结果集封装过程)
Myabtis的SQL的执行是通过SqlSession.默认的实现类是DefalutSqlSession.通过源码可以发现,selectOne最终会调用selectList这个方法. @Overrid ...