Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 简单角度应用程序-无法获得$http success/然后启动_Angularjs - Fatal编程技术网

Angularjs 简单角度应用程序-无法获得$http success/然后启动

Angularjs 简单角度应用程序-无法获得$http success/然后启动,angularjs,Angularjs,我的应用运行正常,没有错误,我可以看到页面上显示的$scope.message。在fiddler中,我可以看到我的api调用返回了一条200消息,但从未调用success函数。我做错了什么 更新 我改为: angular.module('alertApp.controllers', []) .controller('mainController', function($scope, alertAPIservice) { $scope.message = 'Hello Mid-World!

我的应用运行正常,没有错误,我可以看到页面上显示的$scope.message。在fiddler中,我可以看到我的api调用返回了一条200消息,但从未调用success函数。我做错了什么

更新

我改为:

angular.module('alertApp.controllers', [])
.controller('mainController', function($scope, alertAPIservice) {
    $scope.message = 'Hello Mid-World!';
    $scope.alertsList = [];

    alertAPIservice.getAlerts().success(function (response) {
        $scope.alertsList = response;
    });  

});
尽管我收到了一个200英寸的fiddler,错误回调被调用。响应来自web api,类型为Ok()

试试这个('then'而不是'success'):

alertAPIservice.getAlerts().then(函数(响应){
$scope.alertsList=响应;

});

您需要使用回调的名称作为“JSON\U回调”

请参考以下更新代码-

angular.module('alertApp',['alertApp.controllers','alertApp.services']);
angular.module('alertApp.services',[]).factory('alertAPIservice',函数($http){
var-alertAPI={};
alertAPI.getAlerts=函数(){
返回$http.jsonp('https://angularjs.org/greet.php?name=StackOverflow&callback=JSON_CALLBACK');
//在url中使用&callback=JSON_callback
}
返回警报API;
});
angular.module('alertApp.Controller',[])
.controller('mainController',函数($scope,alertAPIservice){
$scope.message='Hello Mid World!';
$scope.alertsList=“加载数据”;
alertAPIservice.getAlerts().then(函数(响应){
$scope.alertsList=response.data;
},函数(错误,a,b){
$scope.alertsList=错误;
});  
}); 

{{message}}
{{alertsList | json}}

谢谢。我确实读过,当时使用它更好,但这也不起作用。我没有控制台消息,可以再次看到web api调用的200结果
200
并不一定意味着成功。添加一个错误处理程序。谢谢你刚才看到你的评论,我正忙着添加一个错误处理程序:)比如说,响应正文中的前8个字符是什么?这是你的问题,那是JSON,不是JSONP。你的控制台中应该有语法错误。谢谢你提供的信息,我会阅读一些。
angular.module('alertApp.services', []).
factory('alertAPIservice', function($http) {

var alertAPI = {};

alertAPI.getAlerts = function() {
  return $http({
    method: 'JSONP', 
    url: 'http://localhost:50828/api/alert'
  });
}
 return alertAPI;
}); 
angular.module('alertApp.controllers', [])
.controller('mainController', function($scope, alertAPIservice) {
    $scope.message = 'Hello Mid-World!';
    $scope.alertsList = [];

    alertAPIservice.getAlerts().success(function (response) {
        $scope.alertsList = response;
    });  

});
alertAPIservice.getAlerts().then(function successCallback(response) {
     $scope.alertsList = response;
  }, function errorCallback(response) {
   console.log("turd");
  });