我有一个简单的Rails应用程序在生产和开发中工作得很好,但生产中的DELETE
请求:
这样的链接:
link_to delete_me_path, method: :delete, remote: true
点击link
后我收到 403 响应,但不确定请求是否到达服务器: nginx 也没有生产日志记录了请求。
我不知道它是来自我的 nginx / passenger 设置,还是来自 jquery 的内容(console
中没有显示错误)< / p>
这是我在 HTML 中的回复:
<HEAD><TITLE>Access Denied</TITLE></HEAD>
<BODY BGCOLOR="white" FGCOLOR="black">
<FONT FACE="Helvetica,Arial"><B>
You are not allowed to access the document.</B></FONT>
<!-- default "Access Denied" response (403) -->
</BODY>
回复标题:
Cache-Control:no-store
Connection:close
Content-Language:en
Content-Length:228
Content-Type:text/html
Date:Wed, 20 Jan 2016 16:59:10 GMT
更多地研究问题,我使用 CURL :
curl -X DELETE http://example.com/some_path # or any other path
返回
<HEAD><TITLE>Access Denied</TITLE></HEAD>
<BODY BGCOLOR="white" FGCOLOR="black">
<FONT FACE="Helvetica,Arial"><B>
You are not allowed to access the document.</B></FONT>
<!-- default "Access Denied" response (403) -->
</BODY>
答案 0 :(得分:2)
基本上当ISP不支持某些请求类型时会出现问题,基本上是DELETE,PUT等新版本。
blog post中提到了一次传递。使用VPN也可以在大多数时间解决这个问题。
答案 1 :(得分:0)
正如@SiddharthGupta指出的那样,我的 ISP 是问题的根源,我激活了 VPN ,我的DELETE请求在生产中正常工作。