PHP在Ajax调用上未返回数据


PHP not returning data on Ajax Call?

我在heroku中遇到了这个不寻常的问题,我正在使用Javascript fetch从PHP后端加载一些会话数据。

php文件如下所示,

<?php
  session_start();
  header('Content-Type: application/json');
  $data = json_encode($_SESSION['data']);
  print_r($data);

并使用Javascript 进行调用

fetch('./data.php')
  .then(function(response) {
    return response.json()
  }).then(function(json) {
    console.log('parsed json', json)
  }).catch(function(ex) {
    console.log('parsing failed', ex)
  })

当我从浏览器加载数据时,控制台上的输出是解析的json-null

但是,当我通过直接访问在浏览器上加载相同的data.php时,它会在浏览器上很好地打印数据。

我做错了什么,让它在使用ajax进行调用时以两种不同的方式表现——不工作,让它直接转到文件时工作?感谢

我已经执行了您的代码,但得到了null答案,因为目前,我在会话数据变量中没有任何数据
因此,我猜您的会话数据工作不正常,请尝试先在应用程序中单独打印会话数据,然后再尝试执行此代码。