我的前端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实例上的请求标题看起来完全相同。
非常感谢任何帮助或见解。
答案 0 :(得分:0)
它的耻辱 - 我发现了一些检查引用者的代码,并会采取某些行动来允许/拒绝路由,并且绕过localhost,因此它始终有效。所以这是一个错误。
因为我提供了赏金,所以我似乎无法解决这个问题所以我正在回答它。感谢所有花时间研究这个的人。