ajax请求时请求方法的奇怪行为

时间:2015-12-11 18:22:03

标签: javascript java ajax spring

我的控制器中有这样的方法

@Controller
@RequestMapping ("/admin/users")
public class AdminUserController {
..
  @RequestMapping(value = "/{id}", method = RequestMethod.DELETE)
  public @ResponseBody boolean deleteUser(@PathVariable("id") int id,
                             HttpServletResponse response) {
     ..
  }
..
}

这是ajax请求

$.ajax({
  url: '/admin/users/'+id,
  type: 'delete',
  success: function(data){
    console.log(data);
  },
  error: function(e){
    console.log(e);
  }
});

当我发送此请求时,它失败了,我得到了405.当我查看响应标题时,我看到了Allow:"GET"

确定。我将ajax请求“删除”更改为“获取”,但随后我回复Allow:"DELETE" ..

它可以是什么?

1 个答案:

答案 0 :(得分:0)

我认为您的服务器安全配置不允许执行DELETE操作,基本上是标题:

ALLOW: GET

建议您尝试使用GET请求,但是因为您指定了

method = RequestMethod.DELETE

Spring拒绝对该方法的GET调用。

您应该将method = RequestMethod.DELETE更改为method = RequestMethod.GET 并发出HTTP GET请求。

如果有帮助,请告诉我。