在生产中删除请求

时间:2016-01-20 17:03:15

标签: jquery ruby-on-rails nginx

我有一个简单的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>

有什么想法吗?

2 个答案:

答案 0 :(得分:2)

基本上当ISP不支持某些请求类型时会出现问题,基本上是DELETE,PUT等新版本。

blog post中提到了一次传递。使用VPN也可以在大多数时间解决这个问题。

答案 1 :(得分:0)

正如@SiddharthGupta指出的那样,我的 ISP 是问题的根源,我激活了 VPN ,我的DELETE请求在生产中正常工作。