【问题标题】:PHP not returning data on Ajax Call?PHP没有在Ajax调用上返回数据?
【发布时间】:2016-07-25 18:48:29
【问题描述】:

我在 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)
  })

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

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

当使用 ajax 调用不工作并使其在直接转到文件时工作时,我做错了什么以使其以两种不同的方式运行? 谢谢

【问题讨论】:

  • 打开 PHP 错误报告并在您喜欢的浏览器的开发者工具中检查网络选项卡。
  • @MonkeyZeus 我没做错,我不知道怎么了:/

标签: javascript php json heroku


【解决方案1】:

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

【讨论】:

  • 好吧,当我直接从浏览器打开 data.php 时,会话数据已正确加载并打印数据,所以我认为它必须与 heroku 做一些事情
  • 但是如果它与heroku相关,那么它不应该返回任何数据。但令人惊讶的是,它正在返回给定的测试数据:session_start(); header('Content-Type: application/json'); $data = 'jgadhgash'; $data = json_encode($data);打印_r($数据);我刚刚尝试输出一些数据。
  • 我想我已经弄清楚了,这与 javascript Fetch 有关,当我使用 jquery $.get 进行 Ajax 调用时,它可以工作。所以 Fetch API 出了点问题
猜你喜欢
  • 1970-01-01
  • 2020-07-02
  • 2023-03-29
  • 2016-07-28
  • 2019-03-18
  • 1970-01-01
  • 2012-08-11
  • 1970-01-01
  • 2015-08-26
相关资源
最近更新 更多