angularjs:可能未处理拒绝$ http.get() - 状态:-1 CORS

时间:2017-05-10 09:14:28

标签: angularjs asp.net-mvc cors angular-http

使用http get方法时出现以下错误。

:63502/Scripts/angular.js:14525 Possibly unhandled rejection: {"data":null,"status":-1,"config":{"method":"GET","transformRequest":[null],"transformResponse":[null],"jsonpCallbackParam":"callback","params":{"id":"23"},"url":"api/Project/GetProject","headers":{"Accept":"application/json, text/plain, */*"}},"statusText":""}

HTML code,

<div class="row pb-20px text-center">
                <label class="col-sm-2 lb-date" for="projid">Project ID</label>
                <input type="text" id="projid" class="col-sm-2" ng-model="project.id" />
                <div style="padding-left:10px;">
                    <button type="submit" class="btn btn-primary col-sm-2" ng-click="ProjSearch()">Submit</button>
                </div>
                </div>

Angular code,

var myView = angular.module('myView', []);
myView.controller('ViewCtrl', ['$scope', '$http', '$filter', function ($scope, $http, $filter) {
$scope.ProjSearch = function () {
    debugger;
    t = {
        'id': $scope.project.id
    };
    var r = $http.get('api/Project/GetProject', { params: t })
            .then(function (response) {
                result = response.data;

                var c;

                $scope.project.title = result.ProjectTitle;

请建议如何清除错误。

2 个答案:

答案 0 :(得分:1)

在$ http.get()函数中,第一个参数处理promise的成功解析,而函数的第二个参数在promise被拒绝时处理错误。

根据文件,

  

$ qProvider处理被拒绝时是否生成错误   承诺没有得到处理。默认情况下启用此功能。

https://docs.angularjs.org/api/ng/provider/$qProvider

尝试提供函数的空白实现来处理错误。

    $http.get('api/Project/GetProject', { params: t })
        .then(function (response) {
             result = response.data;
             var c;
             $scope.project.title = result.ProjectTitle;
            },function(){
         });

或者只是在应用程序的配置中将errorOnUnhandledRejections的值覆盖为false。

app.config(['$qProvider', function ($qProvider) {
  $qProvider.errorOnUnhandledRejections(false);
}]);

答案 1 :(得分:-1)

在我看来问题就在这一行:

result = response.data;

您确定response对象中包含data字段吗?