当前位置: 首页 > 知识库问答 >
问题:

Fetch Api-如何将PHP会话数据发送到目标PHP文件?

乔俊才
2023-03-14

我不明白为什么Javascript提取API顽固地拒绝保留我的PHP会话。下面是一个最小的测试:

<?php
session_start();
$_SESSION['test'] = 'OK';
?>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title></title>
</head>
<body>
    <p>Origin session id is <?php echo session_id() ?></p>
    <div id="target"></div>
    <script>
        fetch('data.php', {
            method: 'get',
            credentials: 'include'
        }).then(response => response.text()).then((data) => {
            document.getElementById('target').innerHTML = data;
        }).catch(function (error) {
            console.log(error);
        });
    </script>
</body>
</html>
    <?php
session_start();

echo '<p>Target session id is ' .  session_id() . '</p>';
if (empty($_SESSION)) {
    echo '<p>session is empty</p>';
} else {
    echo implode('<br>', $_SESSION);
}
Origin session id is abe10f9c611066f6400b2ce3d0ee8f97
Target session id is a68e76bf1d5180d79d27a2bcfa3c462c
session is empty

我发现了几个类似的问题/答案,但没有一个有用。建议的解决方案是为凭证选项提供“包含”或“同一站点”,但它们都不起作用。

我知道我可以传递会话ID,但如果可能,我希望避免它。

谢谢你的帮助

共有1个答案

萧宣
2023-03-14

服务器上是否启用了session.cookie_httponly?如果是这样,这将阻止javascript调用使用cookie(通常来说,PHP会话往往由cookie支持)。在这个设置的上下文中,超文本传输协议-只有意味着超文本传输协议/https允许;javascript/web汇编/...拒绝。

您可能可以通过phpinfo()看到当前值 。或者在php上阅读更多关于它的信息。网

 类似资料:
  • 问题内容: 如何将JSON数据从浏览器中的Javascript发送到服务器,并由PHP在其中进行解析? 问题答案: 我在这里获得了很多信息,所以我想发布我发现的解决方案。 问题: 从浏览器上的Javascript获取JSON数据到服务器,然后让PHP成功解析它。 环境: Windows上的浏览器(Firefox)中的Javascript。LAMP服务器作为远程服务器:Ubuntu上的PHP 5.3

  • 问题内容: 我的jphp.php文件包含以下内容: 并且我的javascript文件包含以下内容: 我已经用php编码了数据数据..现在我想将这两个数据数组发送到javascript …我不知道要使用的正确命令。我对谷歌搜索感到困惑。 请帮忙 。 问题答案: 使用jQuery的简单特定示例: JavaScript页面: 在您的php中:

  • 问题内容: 我有两个网站,一个是TLS,一个不是,这两个都是针对同一客户端的,但是我需要这些网站彼此(并且只能彼此)共享 用户 , 订单 , 帐户 等的通用数据。 通常可以使用数据完成此操作,但是我显然不能在其他站点上使用它们,而且我发现我可以将会话数据存储在数据库(MySQL)中,而不是文件系统中。 我已经四处搜寻,发现此有用的指南以及此较旧但 有用的指南。我还发现了该指南,该指南具有最新的My

  • 下面是我的代码: 是不可能插入IMEI的事实,这就是为什么它不张贴,还是其他一些问题? 谢谢你的协助。

  • 问题内容: 我想发送一个用JavaScript构造的数组,其中包含多个select的选定值。有没有一种方法可以使用ajax将此数组发送到php脚本? 问题答案: 您可以使用XML或JSON发回到服务器。您的javascript将必须构造该帖子,在XML的情况下,则需要您在javascript中创建它。JSON不仅轻巧,而且更易于在javascript中制作。签出JSON- PHP 来解析JSON。

  • 好吧,我不知道出了什么问题。我试图将表单数据从一个简单的jQuery脚本传递到我的php脚本,但由于某种原因,当我试图访问$\u POST数据时,php说$\u POST是空的? 现在开始,我有以下jQuery和php脚本 jQuery PHP var post的控制台日志是这样的 而$U POST的var_dump则说明了这一点 我不知道为什么这会给我带来如此多的问题,所以任何帮助都将不胜感激。