$.ajax $.get $.post使用问题总结

来源:互联网 发布:手机淘宝口令红包 编辑:程序博客网 时间:2024/06/06 18:42

一、$.ajax()

    1、$.ajax()参数详解参看:点击打开链接
    2、使用注意问题:

          a、ajax方法的data参数格式问题,以json对象传输时,json的key需要加“”号(url可加.action可不加),不然后台解析不了,如以下格式:(data参数会被自动转换成字符串形式,所以此时json对象被转换成json字符串,这个就是key不能不加“”的原因?)

$.ajax({     url: "/cluster/apply/doHandle",   contentType: "application/json",    type: "POST",    data: {
    "id": id,    "applyStatus":"1",   }
     success: function (result) { } 
         
如果定义了json对象,该对象key没有加双引号,可以使用JSON.stringify(vo)方法转换上述格式:
var vo = {
    id: id,    applyStatus:"1",
}
$.ajax({     url: "/cluster/apply/doHandle",   contentType: "application/json",    type: "POST",    data: JSON.stringify(vo),
     success: function (result) { } 
 b  如果后台使用springMVC做控制层框架,可以有两种方式接收ajax传递的参数,一种是以对象接收,用对象封装json中的字段,不过确保该pojo对象的属性名和json的key名字相同,json不得传pojo中没有的字段,允许json中不必要包含pojo中的全部属性,最后在control的参数类名前面用@RequestBody修饰;另一种可以直接在control的参数列表用和json key相同名的参数进行接收。

二、$.get()和$.post()

1、$.get()和$.post()具体差异可参看上述链接;
2、使用注意问题:
a、两者在编写参数时注意和$.ajax()的区别,他们两个不可以像$.ajax()一样参数可以编写成key-value的形式,即:
$.post({     url: "/cluster/apply/doHandle",   contentType: "application/json",     data: {
    "id": id,    "applyStatus":"1",   }
     success: function (result) { } 
}
这种写法是不正确的,只能写成:
$.post( "/cluster/apply/doHandle",{
    "id": id,    "applyStatus":"1"}
function(result) {} 
}
b、$.get()和$.post()的data参数的key,实验过加不加""都行;

三、补充








原创粉丝点击