Ajax post HTML 405,Ajax POST导致405(方法不允许) – Spring MVC

我正在尝试用POST方法对我的

Spring控制器/动作进行ajax调用,并使用@ResponseBody从服务器返回一个对象.奇怪的情况是它在添加spring安全层后停止工作,之前一切正常.我将尝试解释我解决问题的步骤,然后向您展示代码/捕获/等.

1.

经过一些研究后,我发现了一些答案,说明问题可能与csrf机制有关,所以我禁用它并仍然存在问题. (spring-security.xml bellow)

2.

我做了一个wireshark捕获来检查请求/响应.我的ajax请求没问题,我的控制器声明没问题,但我不明白为什么,405响应表明>允许:GET(捕获波纹管)

3.

我试图通过浏览器访问我的控制器操作(即发出GET请求),我收到错误HTTP状态405 – 不支持请求方法’GET’!

4.

我试图将RequestMapping(方法…)更改为RequestMethod.GET,并且请求到达控制器并且工作正常,但我不希望它在GET方法上工作,我想要一个POST请求.

5.

更改了RequestMapping(使用,生成,标题)以接受所有类型的数据,但仍然是405 …

这真让我抓狂!我发布我的文件,所以你可以检查它们,任何提示将不胜感激.谢谢! (重要说明:这是我的绝望配置)

弹簧security.xml文件

xmlns...(all needed declarations)>

username-parameter="email"

password-parameter="password"

authentication-failure-url="/login?failed" />

..... (authentication)

AdminController.java

@Controller

@RequestMapping("/admin**")

public class AdminController {

... (all my autowired beans)

@RequestMapping(

value = "/events/loadEvents",

method = RequestMethod.POST,

consumes = MediaType.ALL_VALUE,

produces = MediaType.ALL_VALUE,

headers = "Accept=*/*")

@ResponseBody

public Event loadEvents(@RequestParam("parentId") long parentId) {

... (my logic)

return event;

}

}

请求(wireshark捕获)

TgsH8.jpg

响应(wireshark捕获)

au3Tw.jpg

编辑

jquery ajax调用代码

$.ajax({

type: 'POST',

cache: false,

url: /admin/events/loadEvents,

data: { parentId: 1 },

dataType = 'json',

contentType = 'application/json',

...

});

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值