Heroku发回HTTP状态444用于AJAX请求 - 为什么?

时间:2012-11-09 10:51:54

标签: ajax jquery post heroku nginx

我的前端Web应用程序正在使用jQuery的AJAX函数($.ajax$.getJSON$.post)通过GET和POST请求调用后端数据API。在浏览器控制台和Heroku应用程序的日志中,我可以看到调用被拒绝,HTTP状态为444,这是一个Nginx自定义状态:

  

在Nginx日志中使用,表示服务器未向客户端返回任何信息并关闭连接(有助于防范恶意软件)。

(虽然这并不一定意味着他们正在运行Nginx或者这是由于Nginx)

任何人都知道为什么会发生这种情况或我如何解决这个问题?电话没什么特别的 - 这是一个例子coffeescript:

jQuery ($) ->

  tbody = $("table#top_five_table > tbody")

  $.ajaxSetup(
    dataType: "json"
  )

  $.getJSON url, (data, status, xhr) => [
    tbody.empty().html( data_munging(data) )
  ]

一切都在本地运行,但显然我没有使用Nginx代理运行它(因为我假设Heroku是)。本地和Heroku实例上的请求标题看起来完全相同。

非常感谢任何帮助或见解。

1 个答案:

答案 0 :(得分:0)

它的耻辱 - 我发现了一些检查引用者的代码,并会采取某些行动来允许/拒绝路由,并且绕过localhost,因此它始终有效。所以这是一个错误。

因为我提供了赏金,所以我似乎无法解决这个问题所以我正在回答它。感谢所有花时间研究这个的人。