【问题标题】:Javascript fetch requests are empty when starting a session开始会话时,Javascript 获取请求为空
【发布时间】:2022-11-04 06:03:10
【问题描述】:

我有以下简单的 PHP 页面:

<?php
echo 'done';

当我向该 URL 发送 Javascript fetch 请求时,我可以在浏览器的开发工具中检查响应并查看它返回字符串“完成”。

这是请求:

const response = await fetch(url, {
  credentials: 'include'
});

另一方面,如果我开始一个会话,响应是空白的:

<?php
session_start();
echo 'done';

在这两种情况下,请求标头完全相同,响应标头完全相同,HTTP 代码为 200。如果我在浏览器中手动转到该 URL,它也可以正常工作。它只会因fetch 请求而失败。

请注意,我将 display_errorsdisplay_startup_errors 设置为 On 并且没有任何内容输出到浏览器,也没有任何内容记录在日志文件中。

【问题讨论】:

  • 为什么投反对票?

标签: javascript php session fetch-api


【解决方案1】:

这种行为是因为bug with Chromium 开发人员已决定他们“WontFix”并已停止回答 cmets。

为了让它工作,你需要手动阅读response.text()

const response = await fetch(url);
const text = await response.text();

完成此操作后,响应正文将显示在您的开发工具中。如果不是,它看起来好像响应是空的,即使它不是。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-11-03
    • 2014-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多