ajax不跳转页面提交表单

一、普通表单

  1. 表单
<form action="/handleForm1" method="post">
	name: <input type="text" name="name" /><br /> 
	<input type="submit" value="Submit" />
</form>
  1. ajax提交
$('form').submit(function (event) {
    event.preventDefault();
    var form = $(this);
    $.ajax({
      type: form.attr('method'),
      url: form.attr('action'),
      data: form.serialize(),
      success: function(data){
      	console.log(data);
      }
    });
});
  1. 处理请求
@RequestMapping("/handleForm1")
@ResponseBody
public String handleForm1(String name) {
	System.out.println(name);
	return "提交的是:"+name;
}
  1. 执行效果:
    在这里插入图片描述

二、文件上传表单

  1. 表单
<form action="/handleForm1" method="post">
	name: <input type="text" name="name" /><br /> 
	<input type="file" name="photo"><br /> 
	<input type="submit" value="Submit" />
</form>
  1. ajax提交
$('form').submit(function(event) {
    event.preventDefault();
    var form = $(this);
    var formData = new FormData(this);
    $.ajax({
        type: form.attr('method'),
        url: form.attr('action'),
        data: formData,
        mimeType: "multipart/form-data",
        contentType: false,
        cache: false,
        processData: false,
        success: function(data) {
            console.log(data);
        }
    });
});
  1. 处理请求
@RequestMapping("/handleForm1")
@ResponseBody
public String handleForm1(String name, MultipartFile photo) {
	return "name:"+name+"   photo 文件大小:"+photo.getSize();
}
  1. 执行效果:
    在这里插入图片描述

三、多文件上传表单

  1. 表单修改
<input type="file" multiple name="photos">
  1. ajax提交
    js同上
  2. 处理请求
@RequestMapping("/handleForm1")
@ResponseBody
public String handleForm1(String name, MultipartFile[] photos) {
	return "name:"+name+"   photo 文件个数:"+photos.length;
}
  1. 执行效果:
    在这里插入图片描述

延伸阅读:
Using_XMLHttpRequest - 提交表单和上传文件 (AJAX Form Submit Framework)

发布了67 篇原创文章 · 获赞 70 · 访问量 16万+

猜你喜欢

转载自blog.csdn.net/fukaiit/article/details/89097530