【问题标题】:Calling PHP with AngularJS/AJAX/JavaScript使用 AngularJS/AJAX/JavaScript 调用 PHP
【发布时间】:2016-06-13 20:32:59
【问题描述】:

我对 PHP 和 AJAX 很陌生,所以请告知这种方法是否真的合适。

基本上我要做的是用来自 Microsoft SQL Server 的数据填充 .JSON。我正在使用 PHP 文件来设置连接,该连接还将填充 .JSON 文件,然后可以从中读取该文件以填充离子列表。我可以从 .JSON 读取没有问题,但是当我调用 PHP 文件时问题就来了。

我不确定调用它的最佳方法是什么。我尝试过 AJAX、AngularJS 和 JavaScript 方法,但似乎在访问 PHP 文件时它们失败了,但无一例外。

这是能够触发.success的代码

angular.module('someApp').controller('someCrtl', function ($scope, $http) {
$http.get("app/dataLink.php").success(

    function phpCall(data) {        
    $scope.info= data;            
}
)});

注意 $scope.info = data;不是我想做的。这个控制器应该做的是调用将填充 .JSON 的 php,然后从相同的 .JSON 读取以填充 $scope.info

我可以看到它实际上从来没有 $http.get PHP 文档(我在其中放置了一个断点并且它从未被触发)但它仍然继续进入 .success 没有例外。

我希望这已经足够了。

任何其他相关信息可能是:

  • 使用 Visual Studio 2015 企业版
  • 将 AngularJS 与 Ionic 结合使用
  • 使用 Devsense 的 PHP Tools for Visual Studio

任何建议将不胜感激,

谢谢。

【问题讨论】:

  • “这个控制器应该做的是调用 php 来填充 .JSON,然后从相同的 .JSON 中读取来填充 $scope.info”——看起来这正是代码 正在做。现在发生了什么让你认为它不是?您的控制台开发工具 (F12) 中是否有任何错误消息?而如果你直接在浏览器中访问 PHP URL,它看起来是否返回了正确的数据?
  • 应该做的是,当我加载列表并运行此控制器时,它应该转到 PHP 连接文件,该文件将从服务器填充 JSON,然后从 JSON 中读取以填充列表。这不会发生,因为从未访问过 PHP 文件,因此未填充 JSON,并且它似乎返回 null,从而避免了异常。

标签: javascript php angularjs json ajax


【解决方案1】:
angular.module('someApp').controller('someCrtl', function ($scope, $http) {


    function success(result) {
        console.log(result);
        $scope.info = result;
    };

    function error(result) {
        alert("error");
    };

    $http.get("app/dataLink.php").then(success, error);
});

【讨论】:

    【解决方案2】:

    来自 AngularJs 文档:

    不推荐使用 $http 旧式 promise 方法成功和错误。

    AngularJS: API: $http

    将你的成功块替换为:

    .then(function(response) {
         console.log(response);
    }
    

    检查时查看是否有任何响应。如果您使用 chrome,还请注意“网络”选项卡,它会显示呼叫是否成功 (200) 或出现问题 (500) 并以这种方式调试问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-08-19
      • 1970-01-01
      • 2017-05-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-27
      • 2018-01-12
      相关资源
      最近更新 更多