【问题标题】:Spring REST 405弹簧休息 405
【发布时间】:2015-01-15 15:21:07
【问题描述】:

我做了这个休息,首先看看一切都必须正常工作,但我抓住了 405。

HTTP 状态 405 - 不支持请求方法“GET”

应用程序上下文

@Bean
    public ViewResolver contentNegotiatingViewResolver(ContentNegotiationManager manager){
        ContentNegotiatingViewResolver resolver = new ContentNegotiatingViewResolver();
        resolver.setContentNegotiationManager(manager);

        List<ViewResolver> resolvers = new ArrayList<ViewResolver>();
        resolvers.add(getViewResolver());
        resolvers.add(jsonViewResolver());

        resolver.setViewResolvers(resolvers);
        return resolver;
    }   

    @Bean
    public ViewResolver jsonViewResolver(){
        return new JsonViewResolver();
    }

控制器

@RequestMapping(value="/rest/create/{login}", method = RequestMethod.PUT)
    @ResponseStatus(HttpStatus.NO_CONTENT)
    public @ResponseBody User updateUser(@RequestBody User user, @PathVariable String login){
        dao.saveUser(user);
        return user;
    }

【问题讨论】:

    标签: java spring rest


    【解决方案1】:

    method = RequestMethod.PUT 更改为 method = RequestMethod.GET,或对现有映射使用 PUT 请求。

    如果不想使用插件,可以使用 jQuery 创建 PUT 请求

    $.ajax({
        url: someUrl,
        data: someData, 
        type: 'PUT',
        success: function(result) {
            // Do something with the result
        }
    });
    

    【讨论】:

    • 然后使用 PUT 作为方法。你是如何提出要求的?如果来自浏览器,请使用一些插件,例如 Chrome 的 Postman 或 Firefox 的 Poster。
    • 我想从浏览器制作,没有任何插件启动
    • 好的,试试这些插件之一,你可以根据需要自定义你的请求。
    • 好吧,如果你只是在浏览器中输入 url 然后回车,这将是一个 GET 请求。
    • 那我只能通过插件使用?
    【解决方案2】:

    RequestMethod.PUT 更改为RequestMethod.GET

     @RequestMapping(value="/rest/create/{login}", method = RequestMethod.GET)
    

    如果你想使用 put 方法,那么相应地修改你的 HTML 表单标签和控制器

    示例 HTML 表单

     <form:form id="mainForm" name="mainForm" method="PUT" action="Temp.htm" enctype="multipart/form-data" commandName="tempBean">
    

    弹簧控制器

    @RequestMapping(value="/rest/create/{login}", method = RequestMethod.PUT)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-02-28
      • 1970-01-01
      • 2018-07-13
      • 2016-11-04
      • 2020-03-19
      • 2020-05-16
      • 2013-01-13
      相关资源
      最近更新 更多