美文网首页
搭建restful服务中遇到的坑

搭建restful服务中遇到的坑

作者: woniu95 | 来源:发表于2018-07-21 15:56 被阅读0次

        前几天,由于公司的后台管理系统要搭建restful服务,用来规范api和保持接口的可读性,本以为简简单单就可以搞定的事情,结果花了一下午才搭建好,这里分享一下搭建中遇到的坑。


        一。 在进行get和post请求时一切正常,但是在delete请求时,发现客户端报405错误,405是服务器不允许这个方法,报错信息如下:


    图一
    图二

        可以看到这里发送了两个请求,一个options,一个post,这个post请求是delete变得,网上查了下资料,在进行跨域请求的时候,浏览器会自动的发送一个option请求,在接着发送你要发送的请求,解决方案如下:


    图三

        在Nginx中加上如下配置,但是加上后发现还是不行,这个时候就有点懵逼了,问了下前端的同学,发现在Nginx中少了一个配置,如下所示:


    图四
        这里只有option,post,get方法,加上put和delete,至此,delete请求发送正常。

        二。本以为delete请求都正常发送了,put请求应该也能正常的发送,但是,在测试put请求的时候,出现了拿不到参数的问题,这下有懵逼了,明明delete请求都是好的,为什么put请求会出问题呢?
        后来,Google一下发现是springmvc的问题,springmvc会把put请求拦截掉,所以拿不到参数,只要在web.xml中加上如下的拦截器处理一下就可以:

    <filter>  
        <filter-name>HiddenHttpMethodFilter</filter-name>  
        <filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>  
    </filter>  
    <filter-mapping>  
        <filter-name>HiddenHttpMethodFilter</filter-name>  
        <servlet-name>ROOT</servlet-name>  
    </filter-mapping>
    

        至此,问题解决。

    相关文章

      网友评论

          本文标题:搭建restful服务中遇到的坑

          本文链接:https://www.haomeiwen.com/subject/qlvhmftx.html