Dig
, wget
,nslookup
和curl
命令对于我在不到 24 小时前指向另一台服务器的特定 URL 非常有效。
问题是,它只是拒绝被浏览器(Chrome、Safari 和 Firefox)解决。最奇怪的部分是 Postman 成功解决了它(通过分别测试 OPTIONS 和 GET 方法),但仍然没有在浏览器端返回正确的响应。
DNS 检查返回正值,所以这是我开始怀疑问题实际上是在发送的 HTTP 协议请求的标头中的时候 - 除了不包括默认浏览器的请求返回不同响应的事实标头(通过不同的命令行工具和 Postman 发出)和发出的标头(由浏览器自动或使用开发工具手动发出)。
在完全刷新当前本地系统的 DNS 缓存(包括浏览器的缓存,甚至尝试另一个网络上的另一个设备)之后 - 我仍然在浏览器上没有任何响应。
继续前进,并尝试使用 VPN(本地 - 无效)和在线网络代理工具(有效)来验证这一点。
最后,我提取了路由器的默认 DNS 服务器地址,用于nslookup
再次查找 URL,这次特别提到了所需的 DNS 服务器(上面提到的那个),并且在得到正确值的成功响应后,我现在差不多了确保 HTTP 请求导致问题。
该 URL 托管在 Amazon S3 静态托管选项上,我以前多次使用过该选项,并且使用完全相同的配置没有问题。查看最近可能添加的更改/功能,指出我可能需要在所需的通常公共访问策略之上为新创建的存储桶显式设置 CORS 策略。
在应用之后 - 它似乎仍然不起作用。
作为方向的快速变化,可能会使某些部分更清楚正在发生的事情(并且当我开始认为浏览器可能没有Content-Type
在响应中获取正确的标头时,应该将text/html
标头作为其响应,因此,可能没有以预期的行为解析 URL),我继续在 S3 存储桶上应用 301 重定向,而不是静态文件托管,同样,这一切都可以通过命令行工具完美运行,但不能通过浏览器.
无论如何,浏览器似乎没有完成任何发送到 URL 的请求。这可能是OPTIONS
飞行前请求未能正确响应,浏览器只是不会继续发出GET
请求,或者浏览器正在采用的 DNS 路由没有找到 URL,如果这是选项,我目前还不清楚。
有任何想法吗?(除了有时恰好在所选路由上的某些 DNS 服务器需要更长的时间来更新/刷新其缓存,这似乎不会影响我的本地计算机的 DNS 路由,专门针对这种情况。那个,谨慎地说,通过在我的系统(Mac OS X)上的不同可能部分中验证 DNS 配置的不同部分和优先级来验证,包括响应成功返回正确地址的事实)。