在How to make Apache Tomcat accept DELETE method之前询问此问题,但它提供的解决方案对我不起作用。我添加了
<init-param>
<param-name>readonly</param-name>
<param-value>false</param-value>
</init-param>
到web.xml,我的<servlet>
设置如下所示:
<servlet>
<servlet-name>default</servlet-name>
<servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>0</param-value>
</init-param>
<init-param>
<param-name>listings</param-name>
<param-value>false</param-value>
</init-param>
<init-param>
<param-name>readonly</param-name>
<param-value>false</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
但是,在访问DELETE
时,我得到了405。有什么建议?顺便说一下,我重新启动了tomcat。
答案 0 :(得分:1)
看看源代码: Default Servlet
如果网络资源的删除调用失败,您可以看到状态代码 405 Not allowed 。
根据您的问题,目前尚不清楚您要删除的内容 - 您的资源似乎无法删除。
在此servlet处理的每个HTTP DELETE请求中,应执行以下&gt;处理:
- 如果不允许修改静态资源(由配置参数设置),则返回HTTP状态403(禁止)。
- 如果尝试从/ META-INF或/ WEB-INF删除资源,则返回HTTP状态403(禁止)。
- 如果请求的资源不存在,则返回HTTP状态404(未找到)
- 从包含此Web应用程序的静态资源的目录上下文中取消绑定资源。如果成功,则返回HTTP状态204(无内容)。否则,返回HTTP状态405(不允许使用方法)。
无论是源代码还是功能规范,您都可以看到Servlet接受了delete方法,您只需将URL传递给实际可删除的资源。