Firefox 78.0.1 无法连接到在 localhost:8000 运行的 Django 开发服务器

Firefox 78.0.1 无法连接到在 localhost:8000 运行的 Django 开发服务器

Firefox 可以正常浏览运行 Django 开发服务器的开发计算机上的 localhost:8000。但是,它突然停止工作(可能是在夜间更新之后)。Django 服务器运行良好,http://127.0.0.1:8000/但尝试浏览时,http://localhost:8000/它只显示以下页面:

在此处输入图片描述

有任何想法吗?

更新:我刚刚检查过,Firefox 版本显示为 78.0.1,发布日期为 2020 年 7 月 1 日。这就是我认为 Firefox 已更新并覆盖允许连接到本地主机的设置的原因。

更新2:我安装了 Epiphany 浏览器,可以正常使用。所以,问题肯定出在 Firefox 端。

更新 3curl -v localhost:8000输出:

* Rebuilt URL to: localhost:8000/
*   Trying 127.0.0.1...
* Connected to localhost (127.0.0.1) port 8000 (#0)
> GET / HTTP/1.1
> Host: localhost:8000
> User-Agent: curl/7.47.0
> Accept: */*
> 
* HTTP 1.0, assume close after body
< HTTP/1.0 302 Found
< Date: Wed, 08 Jul 2020 07:03:44 GMT
< Server: WSGIServer/0.1 Python/2.7.12
< Vary: Cookie
< X-Frame-Options: SAMEORIGIN
< Content-Type: text/html; charset=utf-8
< Location: /accounts/login/?next=/
< Content-Length: 0
< 
* Closing connection 0

更新 4curl -6v localhost:8000输出:

* Rebuilt URL to: localhost:8000/
*   Trying ::1...
* connect to ::1 port 8000 failed: Connection refused
* Failed to connect to localhost port 8000: Connection refused
* Closing connection 0
curl: (7) Failed to connect to localhost port 8000: Connection refused

答案1

您的应用程序正在 localhost 上监听,但作为仅限 IPv4 的服务,而 localhost 在您的(以及大多数其他人的)中同时具有 IPv4 地址(127.0.0.1)和 IPv6 地址(::1)/etc/hosts

当你尝试连接到 http://localhost:8000 时,Firefox 会将 localhost 解析为两个,并选择一个尝试连接,它不会尝试所有方法

您可以通过明确转到 127.0.0.1 来解决问题,或者,由于现在是 2020 年,我更喜欢这个,通过让您的应用程序支持 IPv6 来解决问题。

相关内容