HTTP GET:可能未处理的拒绝

4

我是一名新手,正在学习Angular。

我想使用http获取来自一个动作名称(MVC)的数据。

在控制台中,我得到了一个GET行,然后出现了以下错误:

"Possibly unhandled rejection: ": {"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);
    }

我觉得你忘记了一些代码 :) - Maximilian Riegler
请在有关AngularJS的问题中使用angularjsangular保留用于Angular 2+版本。 - borislemke
2个回答

2

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

你有两种方式去除这个“警告”:

  1. 处理每个错误:

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

如果您不想处理每个可能的错误,您可以全局禁用它:
angular.module('myApp').config(['$qProvider', function($qProvider){
   $qProvider.errorOnUnhandledRejections(false);

}]);

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


谢谢。我已经进行了更改,现在在控制台中出现了以下消息: Object { data: "<!DOCTYPE html> <html> <head> …", status: 404, headers: headersGetter/<(), config: Object, statusText: "Not Found" } 这是否意味着我的MVC控制器操作未找到? - John Moe
一个 404 错误意味着服务器上未找到该资源。通常情况下,您没有指向正确的 URL。 - Deblaton Jean-Philippe

0

它可以与其他组件一起工作

$http.get("OPCVMLoad") 

而非

$http.get("GrilleFast/OPCVMLoad")

欢迎来到StackOverflow John ;-). 我将此答案标记为“不是答案”。对我来说,它更像是一条评论,永远不会帮助未来遇到与您标题描述的错误类似的人。 - Deblaton Jean-Philippe
感谢您提供这段代码片段,它可能会立即提供一些帮助。通过展示为什么这是一个好的解决方案,适当的解释将极大地提高其教育价值,并使其对未来具有类似但不完全相同问题的读者更有用。请编辑您的答案以添加解释,并指出适用的限制和假设。 - Toby Speight

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接