对于ajax的写法都差不多的有几种写法,比如:
$.post(path,{data:data},function(data){
...
},"json");
$.ajax({
url:"${pageContext.request.contextPath}/public/testupload",
type:"post",
data:{username:username},
success:function(data){
window.clearInterval(timer);
console.log("over..");
},
error:function(e){
alert("错误!!");
window.clearInterval(timer);
}
});
但是如果提交的同时有上传的文件或者图片,这些方式就不行了,一般都是采用表单提交的方式,但是习惯了ajax的提交就可以用FormData,它是一个html5的javascript对象,非常的强大。
只需要在js中获取你要提交表单的对象:
var form = new FormData(document.getElementById("tf"));//tf是form表单的id
或者往对象里面装填你需要的数据:
var form = new FormData();
form.append("username","zxj");
form.append("password",123456)
大概最后的写法就是这样了:
function test(){
var form = new FormData(document.getElementById("tf"));
$.ajax({
url:"url",
type:"post",
data:form,
processData:false,
contentType:false,
success:function(data){
...
},
error:function(e){
alert("错误!!");
}
});
get();//此处为上传文件的进度条
}
就是这么简单,使用FormData,在构造这个对象的时候,把表单的对象,作为一个参数放进去,就可以了,然后FormData,就会得到这个表单对象里面的所有的参数,甚至我们在表单中,都不需要声明enctype =”multipart/form-data” ,就可以直接提交。