jquery发送put请求_通过 Ajax 发送 PUT、DELETE 请求的两种实现方式

本文介绍了如何在jQuery中发送PUT和DELETE请求,包括通过普通请求方法和ajax方式。重点讲解了使用_ajax发送PUT请求时,由于Tomcat对PUT请求处理的特性导致的问题以及解决方案,包括配置HiddenHttpMethodFilter和HttpPutFormContentFilter过滤器,以及通过JSON字符串传递参数的方法。
摘要由CSDN通过智能技术生成

一、普通请求方法发送 PUT 请求

1. 如果不用 ajax 发送 PUT,我们可以通过设置一个隐藏域设置 _method 的值,如下:

2. 控制层:

@RequestMapping(value="/emps", method=RequestMethod.PUT)

public String updateEmp(Employee employee) {

System.out.println(employee);

return "redirect:success.jsp";

}

注意:这里如果采用请求转发的方式即 return "success.jsp",将会出现以下问题:(Tomcat 7.0 版本不会出现这个问题)

SpringMVC HTTP Status 405 - JSPs only permit GET POST or HEAD

采用重定向的方式可以避免这个问题。

3. 这种方式发送 PUT 请求,还需在 web.xml 中配置一个 HiddenHttpMethodFilter 过滤器(如果使用Spring Boot 则会自动配置)

HiddenHttpMethodFilter

org.springframework.web.filter.HiddenHttpMethodFilter

HiddenHttpMethodFilter

/*

原理/问题:为什么要设置 _method 参数?

浏览器 form 表单只支持 GET 与 POST 请求,而DELETE、PUT 等 method 并不支持,Spring3.0 添加了一个过滤器,可以将这些请求转换为标准的 http 方法,使得支持 GET、POST、PUT 与 DELETE 请求。

首先看到 HiddenHttpMethodFilter 过滤器的源码:

16fdccbbea1127e857d90be2f1774ca6.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值