码迷,mamicode.com
首页 > Web开发 > 详细

ajax提交的问题点记录

时间:2017-10-29 17:35:18      阅读:179      评论:0      收藏:0      [点我收藏+]

标签:记录   new   nal   append   defaults   文件上传   role   form序列化   region   

原始方式是这样的:

var prId = $("#prId").val();
var prNumber = $("#prNumber").val();
var prPrname = $("#prPrname").val();
var prRegion = $("#prRegion").val();
var prPersonid = $("#prPersonid").val();
var prRemarks = $("#prRemarks").val();

var defaultSetting = {
type : "post",
dataType : "json",
async : true,
loadingFlag : true,
traditional: false,
contentType: "application/x-www-form-urlencoded",
processData: true,

data: {

prId: prId,
prNumber: prNumber,
prPrname: prPrname,
prRegion: prRegion,
prPersonid: prPersonid,
prRemarks: prRemarks
},

};

 

当时试着用form序列化(form.serialize()),没成功映射到对象才那样写的,后来才知道。原来是因为form的input等标签没有name属性导致的。

后来知道了简略版写成这样。

var data=form.serialize()

var defaultSetting = {
type : "post",
dataType : "json",
async : true,
loadingFlag : true,
traditional: false,
contentType: "application/x-www-form-urlencoded",
processData: true,

data: data,

};

如果data的数据是动态的,像更新时候追加属性的情况可以这样写:

var data = $("#form").serializeJson();

$.extend(data, {userId: $(this).data("dataId")});

var defaultSetting = {
type : "post",
dataType : "json",
async : true,
loadingFlag : true,
traditional: false,
contentType: "application/x-www-form-urlencoded",
processData: true,

data: data,

};

当遇到文件上传时候,就要改改了,写成下面这样:

var formData =new FormData($("#editForm")[0]);

formdata.append("dustId", $(this).data("dataId"));

var defaultSetting = {
type : "post",
dataType : "json",
async : true,
loadingFlag : true,
traditional: false,
contentType: "application/x-www-form-urlencoded",
processData: true,

data: formData ,

};

controller层:

public void add(Project project)

用对象接受这样是没问题的。

以上方式是最常见的提交方式。

 

下面说一种contentType: application/json提交的方法。

这种方式提交文件是不行的

var formdata= $("#editForm").serializeJson()

var defaultSetting ={

url: action,
data: JSON.stringify(formdata),
cache: false,
contentType:"application/json",
processData: false,
async: false

}

controller层接受的时候

public void add(@RequestBody Role role)这样才可以映射到。

ajax提交的问题点记录

标签:记录   new   nal   append   defaults   文件上传   role   form序列化   region   

原文地址:http://www.cnblogs.com/taiyanhong/p/7750361.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!