Vis*_*ire 12 java jax-rs http-status-code-403 tomcat7 http-delete
我正在开发一个RESTful Web服务项目,我正在使用Apache Tomcat和JAX-RS.
我想接受来自客户端的DELETE请求,但每当我从Advanced REST客户端Chrome插件发送DELETE请求时,它都会给出响应代码403 Forbidden.
那么我怎样才能让Apche Tomcat接受DELETE请求呢?
sta*_*ike 13
由于我的CORS过滤器,Tomcat阻止了我的DELETE方法.
我需要在我的web.xml文件中注册新的过滤器.这是一个非常宽松的例子:
<filter>
<filter-name>CorsFilter</filter-name>
<filter-class>org.apache.catalina.filters.CorsFilter</filter-class>
<init-param>
<param-name>cors.allowed.headers</param-name>
<param-value>Accept,Accept-Encoding,Accept-Language,Access-Control-Request-Method,Access-Control-Request-Headers,Authorization,Connection,Content-Type,Host,Origin,Referer,Token-Id,User-Agent, X-Requested-With</param-value>
</init-param>
<init-param>
<param-name>cors.allowed.origins</param-name>
<param-value>*</param-value>
</init-param>
<init-param>
<param-name>cors.allowed.methods</param-name>
<param-value>GET, POST, PUT, DELETE, OPTIONS, HEAD</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CorsFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
Run Code Online (Sandbox Code Playgroud)
以下是您从 Tomcat 收到 DELETE 请求时收到 403 Forbidden 的原因:
在此 servlet 处理的每个 HTTP DELETE 请求上,应执行以下处理:
如果不允许修改静态资源(通过配置参数设置),则返回 HTTP 状态 403(禁止)。
如果尝试从 /META-INF 或 /WEB-INF 删除资源,则返回 HTTP 状态 403(禁止)。
如果请求的资源不存在,则返回HTTP状态404(未找到)
取消资源与包含此 Web 应用程序的静态资源的目录上下文的绑定。如果成功,返回 HTTP 状态 204(无内容)。否则,返回 HTTP 状态 405(方法不允许)。
来源:http ://tomcat.apache.org/tomcat-5.5-doc/catalina/funcspecs/fs-default.html
确保遵守 tomcat 规范以避免出现任何问题。
| 归档时间: |
|
| 查看次数: |
21663 次 |
| 最近记录: |