【问题标题】:angularjs : Possibly unhandled rejection $http.get() - Status: -1 CORS [duplicate]angularjs:可能未处理的拒绝 $http.get() - 状态:-1 CORS [重复]
【发布时间】:2017-10-08 20:24:49
【问题描述】:

使用 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 代码,

<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>

角度代码,

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;

请建议如何清除错误。

【问题讨论】:

  • stackoverflow.com/a/41993170/796400 看起来与您的问题相似
  • 我现在收到此错误
  • :63502/Scripts/angular.js:12587 GET localhost:63502/GB/api/Project/GetProject?id=23
  • 什么错误?我无法理解
  • 我提供的 api 是 '/api/Project/GetProject' 但它会抛出类似 '/GB/api/Project/GetProject' not found 的错误。不知道 GB 是从哪里来的。这只是我的视图的控制器名称,“项目”是我为 api 使用的控制器名称

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


【解决方案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);
}]);

【讨论】:

    【解决方案2】:

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

    result = response.data;
    

    您确定您的response 对象中有一个data 字段吗?

    【讨论】:

    • 我在 api 有一个断点,但没有到达断点本身。响应对象有数据字段
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-04-25
    • 1970-01-01
    • 1970-01-01
    • 2016-11-24
    • 2017-11-02
    • 2018-01-18
    • 2017-05-07
    相关资源
    最近更新 更多