【问题标题】:Http GET : Possibly unhandled rejectionHttp GET : 可能未处理的拒绝
【发布时间】:2017-11-02 10:51:58
【问题描述】:

我是 Angular 的新手。 我想使用 http 从动作名称 (MVC) 中获取数据。

在控制台中我得到一个 GET 行,然后出现以下错误: "可能未处理的拒绝:": {"data":"\r\n\r\n \r\n "

我在 html 视图文件中的代码:

       [HttpGet]
    public ActionResult OPCVMLoad()
    {
        OPCVM opcvm1 = new OPCVM();
        opcvm1.OPCVMcode = 1;
        opcvm1.OPCVMname = "Bernardin";
        return Json(opcvm1, JsonRequestBehavior.AllowGet);
    }



<script>

    var myApp = angular.module("myApp", []);
    myApp.controller('OPCVMViewModel', ['$scope', '$http', function ($scope, $http) {

        $scope.OPCVM = {
            "OPCVMcode": "",
            "OPCVMname": ""
        };
        $scope.OPCVMs = {};

        $scope.TestClick = function TestClick() {
            alert("test clic");
        };

        $scope.GetAllData = function GetAllData() {
            alert("break point in function GetAllData");
            $http.get("GrilleFast/OPCVMLoad")
                .then(function (response)
                {
                    $scope.OPCVM  = response.data; 
                }) 

        };

    }]);

</script>


<div ng-controller="OPCVMViewModel">
    <input name="BtnAddNew" type="button" value="Load all OPCVM" ng-click="GetAllData()"  />
    {{OPCVM.OPCVMcode}}        <br />
    {{OPCVM.OPCVMname}}




</div>

我在 .cs 文件中的代码(动作 MVC)

        [HttpGet]
    public ActionResult OPCVMLoad()
    {
        OPCVM opcvm1 = new OPCVM();
        opcvm1.OPCVMcode = 1;
        opcvm1.OPCVMname = "Bernardin";
        return Json(opcvm1, JsonRequestBehavior.AllowGet);
    }

【问题讨论】:

  • 我想你忘记了一些代码:)
  • 有关 AngularJS 的问题请使用angularjsangular 保留给 Angular 版本 2+

标签: angularjs model-view-controller


【解决方案1】:

它适用于

$http.get("OPCVMLoad") 

而不是

$http.get("GrilleFast/OPCVMLoad")

【讨论】:

  • 欢迎使用 StackOverflow 约翰 ;-)。我将此答案标记为“不是答案”。对我来说,它看起来更像是一条评论,并且永远不会帮助将来遇到您的标题所描述的错误的人。
  • 感谢您提供此代码 sn-p,它可能会提供一些即时帮助。一个正确的解释would greatly improve 其教育价值通过展示为什么这是一个很好的解决问题的方法,并将使它对未来有类似但不相同的问题的读者更有用。请edit您的答案添加解释,并说明适用的限制和假设。
【解决方案2】:

这只是一个警告,告诉你在 Rest 调用中发生了错误,而你没有处理它。

您有 2 种方法可以删除该“警告”:

  1. 您处理每个错误:

        $http.get("GrilleFast/OPCVMLoad")
            .then(function (response)
            {
                $scope.OPCVM  = response.data; 
            }, function(error){
                 console.log(error); //
            }) ;

  1. 如果您不想处理所有可能的错误,可以全局禁用它:

angular.module('myApp').config(['$qProvider', function($qProvider){
   $qProvider.errorOnUnhandledRejections(false);

}]);

我认为它是在 angular 1.5.9 中引入的,您可以在此处找到有关它的文档:$qProvider

【讨论】:

  • 谢谢。我继续进行更改,现在我在控制台中有此消息: Object { data: " ...", status: 404, headers: headersGetter/
  • a 404 错误表示在服务器上找不到资源。通常,您没有指向好的网址
猜你喜欢
  • 2018-02-27
  • 1970-01-01
  • 1970-01-01
  • 2016-11-24
  • 2017-09-21
  • 2017-05-07
  • 1970-01-01
  • 1970-01-01
  • 2016-12-15
相关资源
最近更新 更多