加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

java – Spring MVC PUT请求返回405方法不允许

发布时间:2020-12-15 01:25:03 所属栏目:大数据 来源:网络整理
导读:我正在使用spring mvc来设置rest api,大多数配置都是通过spring boot项目自动设置的.在前端我使用angularjs和他们的$http模块向服务器发出ajax请求以获取资源.资源URL在我的控制器类中定义,但只匹配GET URL.我尝试过PUT和POST,但是这些方法不允许返回405方法

我正在使用spring mvc来设置rest api,大多数配置都是通过spring boot项目自动设置的.在前端我使用angularjs和他们的$http模块向服务器发出ajax请求以获取资源.资源URL在我的控制器类中定义,但只匹配GET URL.我尝试过PUT和POST,但是这些方法不允许返回405方法,而且分别禁止403方法.

我的控制器看起来像这样

@Controller
@RequestMapping("/api/users")
public class UserController {

    @Inject
    UserService svc;

    @RequestMapping(method = RequestMethod.GET)
    @ResponseBody
    public List

并且与服务器的请求不匹配的URL看起来像这样

$http({
            url: BASE_API + 'users/' + user.id,method: 'PUT',data:user
        })

这会产生对localhost:8080 / api / users / 1的PUT请求,服务器会响应405 Method Not Allowed响应代码.

当服务器收到对localhost的HTTP GET请求时,正确处理相同的请求映射但使用RequestMethod.GET:8080 / api / users / 1

任何见解都会有所帮助.

PS以防需要包含弹簧启动依赖项

    

谢谢

最佳答案
查看日志(DEBUG的安全性),您将发现问题.很可能你没有禁用csrf保护,而你的客户端没有发送csrf令牌. (标准Spring Security,而不是Spring Boot,但如果您使用的是Boot security autoconfig,则可以使用外部配置设置关闭csrf.)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读