【问题标题】:Enable AJAX request with JQUERY for PHP in App engine在 App 引擎中使用 JQUERY 为 PHP 启用 AJAX 请求
【发布时间】:2018-10-11 22:20:12
【问题描述】:

我需要从应用引擎中的 Javascript 向 PHP 发出请求。

 $.ajax({
  url: '../php/info.php',
  dataType: 'json',
  type: 'POST',
  success:function(data) {
   //Do stuff with info from PHP (data)
  },
  error: function(error){
   console.log(error);
  }
});

在本地这工作正常,但在 App 引擎中,控制台中出现下一个错误

加载资源失败:服务器响应状态为500()

有人说在 php.ini 中添加 extension = "curl.so" 但不起作用。

【问题讨论】:

    标签: php ajax google-app-engine


    【解决方案1】:

    好的,这与 App Engine 本身无关。此 ajax 调用是从客户端(浏览器)完成的。您正在发送POST,因此您发送的POST 数据很可能格式不正确,或者与后端预期的数据不兼容。所以:

    1) 你的POST 数据是什么样的?

    2) 在后端(应用引擎)中处理../php/info.php 的函数是什么样的?

    【讨论】:

    • 这个 ajax 不发送任何内容,它只请求信息,因为 ../php/info.php 使用 $_SESSION['id_user'] 为特定用户创建导航栏。它的输出是通过 echo json_encode($data);
    • 和 $data 看起来像“
      • 这是第一个选项
      • .....
      • 这是最后一个选项
      " 这在本地运行良好。
    • GAEfan 你的意思是扩展 = "curl.so" 在来自 Javascript 的 AJAX 请求中不是必需的吗?
    • 我做了一个简单的证明,你说得对,问题是我与数据库的连接。我在 Cloud SQL 上出了点问题。
    【解决方案2】:

    您的 JSON 字符串不正确可能还有其他原因。试试:

    var obj = $.parseJSON(data);
    alert(obj.name);
    

    【讨论】:

    • 是的,如果应用引擎后端返回一个JSON对象,那是如何解析的。但是,这会导致浏览器 javascript 错误,而不是 GAE 后端的 500。
    猜你喜欢
    • 2014-12-27
    • 2013-06-20
    • 1970-01-01
    • 2014-09-13
    • 2010-10-19
    • 1970-01-01
    • 2018-03-20
    相关资源
    最近更新 更多