【发布时间】:2015-06-02 02:38:22
【问题描述】:
我正在使用 SpringBoot 1.2.3.RELEASE,它是一个使用 thymeleaf 和 jquery 的简单 SpringMVC Web 应用程序。
我的控制器:
@Controller
@RequestMapping(value="/cart")
public class CartController
{
@RequestMapping(value="", method=RequestMethod.GET)
public String showCart(HttpServletRequest request, Model model)
{
Cart cart = getOrCreateCart(request);
model.addAttribute("cart", cart);
return "cart";
}
@RequestMapping(value="/items", method=RequestMethod.PUT)
public String updateCartItem(@RequestBody LineItem item, HttpServletRequest request, HttpServletResponse response)
{
Cart cart = getOrCreateCart(request);
cart.updateItemQuantity(item.getProduct(), item.getQuantity());
return "redirect:/cart";
}
}
我正在使用 jquery 发送 PUT 请求,如下所示:
$.ajax ({
url: 'cart/items',
type: "PUT",
dataType: "json",
contentType: "application/json",
data : '{ "product" :{ "sku":"'+ sku +'"},"quantity":"'+quantity+'"}',
success: function(responseData, status, xhttp){
alert(responseData);
//location.reload();
}
});
当触发此 PUT 请求时,它会到达 updateCartItem() 方法,然后使用 return "redirect:/cart"; 它会抛出 PUT http://localhost:8080/cart 405(不允许的方法)错误。
为什么重定向视图带有相同的重定向 url 的 PUT 方法?
我在405 JSP error with Put Method看到过类似的情况
如何以春季方式解决此问题?
【问题讨论】:
标签: jquery spring spring-mvc spring-boot