gpt4 book ai didi

ruby-on-rails - 当服务器在本地主机上时,指向 FlightRadar24 的链接出现 HTTP 错误 418(茶壶错误)

转载 作者:可可西里 更新时间:2023-11-01 16:26:17 25 4
gpt4 key购买 nike

我正在编写一个 Rails 网络应用程序,用于向用户显示 OurAirports 机场数据。我提供的一项便利是指向该机场的 FlightRadar24 网站的链接。

我为该机场构建了一个 URL,例如“https://www.flightradar24.com/airport/JFK ”,然后显示一个普通的超链接:

<td align="center">
<%= link_to 'FR 24', airport.flight_radar_24_link, target: '_blank' %>
</td>

当我点击 production server on Heroku 上的链接时,这工作正常,但是当我在本地运行 Web 服务器时,出现 HTTP 错误:

This page isn’t working
If the problem continues, contact the site owner.
HTTP ERROR 418`

我认为这与 CSRF 有关,但我找不到任何确定的东西。

源代码位于 https://github.com/keithrbennett/our_airports以防万一。

谁能告诉我这是怎么回事,我该如何解决?

最佳答案

我不确定为什么 FlightRadar24 在这种情况下以 418 响应,但这确实让您的应用程序难以在本地运行。

这是因为 HTTP referer header 。当该 header 设置为 localhost 时,您会得到一个茶壶;如果没有,您将获得 200。

% curl -I --referer "http://localhost:3000" "https://www.flightradar24.com/airport/JFK"
HTTP/2 418
date: Mon, 03 Sep 2018 23:02:16 GMT
server: cloudflare

但以 example.com 作为引用者:

% curl -I --referer "http://www.example.com" "https://www.flightradar24.com/airport/JFK"
HTTP/2 200
date: Mon, 03 Sep 2018 23:02:29 GMT
content-type: text/html; charset=utf-8
last-modified: Mon, 03 Sep 2018 23:02:29 GMT
x-airport: BQH
server: cloudflare

(为了便于阅读,删除了一些标题)


如何变通?

  1. 运行本地开发服务器,使用漂亮的主机名,如 our-airports.test。我用 puma-dev为此,在本地运行多个 Rails 应用程序时也很方便。
  2. 编辑 /etc/hosts 为一个漂亮的主机名,例如 our-airports.test

编辑:

this 中找到了更好的解决方案答案,就像将此元标记添加到您的 HTML 一样简单:

 <meta name="referrer" content="no-referrer" />

关于ruby-on-rails - 当服务器在本地主机上时,指向 FlightRadar24 的链接出现 HTTP 错误 418(茶壶错误),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52143900/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com