【发布时间】:2014-08-09 03:54:44
【问题描述】:
我正在尝试调试网站之间的重定向问题,我很确定这是由于 Safari 对 3rd 方 cookie 的默认处理,但我试图通过查看正在传递的 cookie 来确认问题出在哪里使用 Web Inspector 中的网络请求时间线在请求/响应中。这都是 HTTPS 流量,所以外部嗅探器出来了 - 我需要使用 Safari 的调试工具。
我遇到的问题是我认为网络时间线没有报告重定向。我写了一个页面,其中只包含指向供应商网站的 javascript 重定向;它应该验证 URL 参数并传回执行另一个重定向的页面。我在浏览器中看到的是不同的页面(登录页面、供应商网站)。网络时间线显示我的页面正在加载,然后是供应商登录页面正在加载。检查员将我的页面显示为登录页面的引荐来源。我的代码中没有对此登录页面的引用 - 这必须是从正确页面重定向的结果(我的 javascript 代码应该重定向到的页面)。但时间线没有显示任何重定向。
我知道它应该显示重定向;当该功能添加到 Safari 6 时,我在 safari 博客上找到了一篇文章。我找不到任何设置或任何东西来控制它。
这是一个已知的错误吗? Safari 7 中是否删除了该功能?还是这个操作符错误?
更新:我在 Firefox 中进行了测试,使用“接受第三方 Cookie”设置的“来自访问者”选项来模仿 Safari 默认的行为。在 Firefox 的时间线中,我可以清楚地看到两个 302 重定向,然后才登陆供应商登录页面。 Safari 不显示它们。因此,野生动物园显然正在压制他们。这是我错过的错误还是设置?
【问题讨论】:
-
您确定正在发生重定向吗?我同意,根据您的描述,这似乎很可能,但您能否在另一个浏览器中确认它作为健全性检查?
-
好点@pieman72。由于可疑的 cookie 问题,我不相信我在另一个浏览器中看到的会是一样的。但是你的问题让我意识到——我可以在另一个浏览器中禁用 cookie 并比较结果。我已经用我的发现更新了这个问题。
-
很高兴把它缩小了一点。不幸的是,我对 Safari 的了解还不够,无法让您更接近答案。祝你好运。
-
我看到了类似的问题。 Chrome 显示 2 个请求:GET 301(其他)-> GET 200(文档)。 Safari 似乎也遵循重定向,但仅显示 GET 200(文档)。
-
谢谢! Safari 中的第三方 Cookie 设置为我们指明了正确的方向。