jquery ajax contentType 简单实用

1.问题

今天通过jquery ajax给后台传数据,数据是jsonarry 中保存jsonObject ,最后再用JSON.stringify() 转换为字符串,但是后台接收不到参数。

代码如下:

var jsonArry = []; //json 数组
var title = "标题"; 
$("#id").each(function(){
    var jsonObject = {}; //json 对象
    jsonObject .name = $(this).find("input:eq(0)").val();
    jsonObject .age= $(this).find("input:eq(1)").val();
    jsonArry.push(jsonObject );
}
var imgParam = JSON.stringify(jsonArry);

$.ajax({
        url:"/manager/***", //自己url
        type:"post",
        data:{
            imgs:imgParam,
            title:title
        },
        dataType:'json',
        success:function(data){
        }
});
2.问题解决

1.contentType: “application/json;charset=UTF-8”
2.processData: false
3.data: stringify(aObject)

添加如上参数
如下:

var jsonArry = [];
var title = "标题";
$("#id").each(function(){
    var jsonObject = {};
    jsonObject .name = $(this).find("input:eq(0)").val();
    jsonObject .age= $(this).find("input:eq(1)").val();
    jsonArry.push(jsonObject );
}
var imgParam = JSON.stringify(jsonArry);

$.ajax({
        url:"/manager/***", //自己url
        type:"post",
        data:JSON.stringify({
            imgs:imgParam,
            title:title
        }),
        dataType:'json',
        contentType: "application/json;charset=UTF-8",
        processData: false,
        success:function(data){
        }
});
3.问题分析

数据传输中的格式化和序列化问题

4.补充
  • contentType 默认值:“application/x-www-form-urlencoded; charset=UTF-8”
  • processData 默认为false,当设置为true的时候,jquery ajax 提交的时候不会序列化 data,而是直接使用data。

猜你喜欢

转载自blog.csdn.net/qq_17639593/article/details/80546719