如何在Safari 4中调试XHR POST请求?

时间:2009-08-26 22:31:40

标签: javascript safari xmlhttprequest

我有一个在FF3.5中成功的XHR请求,但在Safari 4中显然失败了。我正在查看Safari中调试器中的xhr请求和Firefox中的Firebug。

因此,在被击中的后端服务上,如果POST参数中缺少用户名和密码,则服务会给出500错误。如果参数存在(即使不正确),则根据错误给出200或40x。

无论如何,使用相同的代码,它适用于非Safari浏览器。 Safari获取500错误,如用户/通行证未通过。

当我在调试器中检查请求时,它看起来不像它在日志中显示POST数据。

我是否需要启用一个选项,或者如何在Safari 4中调试这些请求?

2 个答案:

答案 0 :(得分:5)

如果您指的是Safari“Web Inspector”:它确实在使用Ajax发送时不显示POST数据。我会使用像Wireshark这样的数据包嗅探器(但仅仅因为我还将其用于其他事情)或debugging proxy

要检查POST的一些事项:您是否正在调用setRequestHeader来设置所需的HTTP标头,例如ConnectionContent-TypeContent-Length?由于您的代码适用于Firefox,我假设您实际上是使用send设置POST内容?请在JS Bin中发布您的代码!

(仅针对档案:除了通过defaults.write启用 debug 菜单外,Safari 4还有一个 Develop 菜单,您可以通过该菜单启用高级首选项。选择“显示WebInspector⌥⌘I”,您应该能够在“资源”选项卡上看到请求和响应。确保选择“按开始时间排序”。如果通过GET发送XHR,显然必须查看请求URL本身,显示正常。但是,对于POST,会显示请求标头,但是POST数据很遗憾。我从未使用过 debug 菜单。)< / p>

答案 1 :(得分:2)

截至今日(Safari 7.1),如果您选择此类XHR(位于资源标签下的 XHRs 文件夹中),则POST请求数据会显示在右侧边栏中:

Select an XHR from the Resources Tab in Safari Web Insepctor