**.js
function checkQRCodeIfExist(fpdm1,fphm1,je,kprq){
var params={fpdm:fpdm1,fphm:fphm1};//或var params={"fpdm":fpdm1,"fphm":fphm1},
var temp;
$.ajax({
type:'post',
url:'${ctx}/jaljxfpfx/jxfpksgd/checkQRCodeIfExist',
//contentType: 'application/json;charset=utf-8', //设置你发送给服务器的格式(后台Controller层方法(paramData格式){})
//traditional: true,/*jquery Ajax 传递数组类型参数,方法1_ajax需要设置traditional: true,防止深度序列化;方法2_前台**.js下,ajax注释掉traditional: true;并在后台指定参数类型*/
data:params,//或data:{fpdm:fpdm1,fphm:fphm1},或data:{"fpdm":fpdm1,"fphm":fphm1},
dataType:'json',//dataType设置你收到服务器返回数据的格式(后台Controller层方法(){return resultData格式;})。
//async:false,//同步
success:function(rData){
temp=rData;
}
});
alert(temp);//async:false,这个ajax请求为同步请求,在没有返回值之前,alert(temp)是不会执行的。如果async:true,则不会等待ajax请求返回的结果,会直接执行ajax后面的语句。
}
**Controller.java
@RequestMapping(value="checkQRCodeIfExist")
@ResponseBody
public JxfpksGd checkQRCodeIfExist(String fpdm,String fphm){//或@RequestParam Map<String,Object> params){
String nsrsbh=ShiroUtil.getCurrentUser().getDqzz().getNsrsbh();
//String fpdm=MapGetter.getString(params, "fpdm");
//String fphm=MapGetter.getString(params, "fphm");
JxfpksGd jxfpksGd=jxfpksGdService.getCheckQRCodeByParams(fpdm, fphm, nsrsbh);
return jxfpksGd;
}
contentType(默认值:'application / x-www-form-urlencoded; charset = UTF-8')
类型:字符串
- 将数据发送到服务器时,请使用此内容类型。默认为“application / x-www-form-urlencoded; charset = UTF-8”,这在大多数情况下都适用。如果您明确地将内容类型传递给$ .ajax(),那么它将始终发送到服务器(即使没有数据发送)。如果未指定charset,则使用服务器的默认字符集将数据传输到服务器; 你必须在服务器端适当地解码它。
- 如果你有二进制(非字母数字)数据(或一个很大的有效载荷)要传输,请使用multipart/form-data。否则,请使用application/x-www-form-urlencoded。contentType:'multipart/form-data', 用来上传文件;如果表单包含命名文件上载,则您唯一的选择是form-data,因为urlencoded无法放置文件名(在form-data中,它是content-disposition的name参数)。
- 在http(文本协议) 请求中,get 和 post 是最常用的。在 jquery 的 ajax 中, contentType都是默认的值:application/x-www-form-urlencoded,这种格式的参数特点就是(键值对),key1=value1&key2=value2... 如:get形式 wwwh.baidu.com/q?key1=value1&key2=value2 。而 post 请求则是使用请求体,参数不在 url 中,在请求体中的参数表现形式也是: key1=value1&key2=value2。(注:ajax将数据发送到服务器时,服务器需要的是一个JSON字符串。)
- ajax 中传给后台的参数为,简单的JSON,设置contentType:'application/x-www-form-urlencoded'。
{
"a": 1,
"b": 2,
"c": 3
}
- ajax 中传给后台的参数为,一个复杂的JSON对象(对象嵌数组,数组中包括对象),设置contentType:'application/json;charset=utf-8',data:JSON.stringify(data)序列化(将对象、数组转化成字符串)后,然后发送,在服务器端接到然后用 JSON.parse()进行还原(将字符串转成json对象)。
{
"data": {
"a": [
{
"x": 2
}
]
}
}
dataType(默认值:Intelligent Guess(xml,json,script或html))
类型:字符串
您期望从服务器返回的数据类型。如果没有指定,jQuery将尝试根据响应的MIME类型推断它(XML MIME类型将产生XML,在1.4 JSON中将产生一个JavaScript对象,在1.4脚本中将执行脚本,其他任何东西将是以字符串形式返回)。
async (默认值:true)
- async 默认是 true,即为异步方式,$.ajax执行后,会继续执行ajax后面的脚本,直到服务器端返回数据后,触发$.ajax里的success方法,这时候执行的是两个线程。
- async 设置为 false,则所有的请求均为同步请求,在没有返回值之前,同步请求将锁住浏览器,用户其它操作必须等待请求完成才可以执行。
jquery.ajax文档http://api.jquery.com/jquery.ajax/
参考https://www.cnblogs.com/htoooth/p/7242217.html