【问题标题】:Reply to POST request is not shown when navigating to another page导航到另一个页面时不显示对 POST 请求的回复
【发布时间】:2016-03-07 02:59:00
【问题描述】:

我正在做一些事情:

$.ajax({
    url: this.baseApiUrl + url,
    type: 'POST',
    data: data || null,
    contentType: 'application/json',
    dataType: 'json',
    success: function(data) {
        console.log('data=%o', data);
        window.location.reload(true);
    },
    error: function(xxx) {
        console.warn('error > xxx=%o', xxx);
    }
});

(我已将 Chrome 配置为不清理网络选项卡或导航控制台)

似乎window.location.reload(true); 会强制重新加载当前页面,从而阻止 Chrome:

  • 在“网络”选项卡中收集回复。预览/响应子选项卡为空
  • 显示console.log('data=%o', data); 语句中的数据。接收到的Object为空

这是 Chrome 中的错误,还是更普遍的问题?我可以做些什么来避免这种情况吗?

【问题讨论】:

    标签: jquery ajax google-chrome debugging post


    【解决方案1】:

    这似乎是 Chrome 在控制台中呈现 JSON 的一些问题。作为一种解决方法,您可以将 JSON 数据转换为字符串格式和日志。希望这能让你的调试日志坚持下去

    console.log('data=%o', JSON.stringify(data));
    

    【讨论】:

    • 谢谢!我没有问题将 json 转储到带有 chrome 的控制台,通常。就在这个导航场景中。我会尝试您的建议,但是网络选项卡中的数据呢?我的印象是,chrome 不知何故没有“看到”回复中的数据,根本
    • 不确定您使用的是哪个 chrome 版本,但有一个选项可以明确询问拦截 XMLHTTPRequest。如果是这种情况,那么也许你打开它。右键单击控制台窗格,它应该在那里。
    • 好的,已验证,您的 stringify 工作正常:数据已记录到控制台。
    • 另一方面,网络选项卡仍然为空,即使启用了 XMLHTTPRequest 的拦截。这很有趣:如果我在 POST 请求上快速单击,并选择了预览选项卡,在执行时会显示数据。如果我在 POST 请求已经完成时选择它,我会收到“无法加载响应数据”。这仅在与导航(window.location.reload)结合使用时发生
    猜你喜欢
    • 1970-01-01
    • 2018-12-28
    • 2021-07-08
    • 1970-01-01
    • 2022-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多