AngularJS与MVC ERR_CONNECTION_REFUSED

时间:2016-05-31 12:54:22

标签: angularjs asp.net-mvc

我创建了一个小型MVC项目,我正在尝试通过我的JavaScript控制器检索数据

我的控制器如下所示: -

angular.module('MyApp', [])
  .controller('PlayerCtrl', function ($scope, $http) {
    $scope.title = "loading...";
    $scope.players = [];
    $scope.working = false;
    $scope.myString = "ABC";

    $scope.getPlayers = function (group) {
        $scope.working = true;

        $http.get("/api/player").success(function (data, status, headers, config) {
            $scope.players = data.players;

        }).error(function (data, status, headers, config) {
            $scope.title = "Oops... something went wrong";
            $scope.working = false;
        });
    };

}); 

我的html页面如下所示: -

@{
  ViewBag.Title = "Play";
}

<div id="bodyContainer" ng-app="MyApp">
  <section id="content">
     <div ng-model="PlayerCtrl" ng-init="getPlayers()">
        <p>{{myString}}</p>
        <select id="group1">
            <option ng-repeat="option in data.players" value="{{option.FirstName}}">{{option.LastName}}</option>
        </select>
     </div>
  </section>
</div>

@section scripts {
    @Scripts.Render("~/Scripts/angular.js")
    @Scripts.Render("~/Scripts/app/player-controller.js")
}

我可以看到我的JavaScript被点击,因为我在Chrome开发者工具中有一个断点

然而,当javascript执行时,我在开发工具的控制台中收到以下错误

http://localhost:61176/4181b55e60dd4855bf01360ebafcfd61/browserLink无法加载资源:net :: ERR_CONNECTION_REFUSED

我不知道为什么。任何指针都非常赞赏

注意 - 如果我将/ api / player添加到我的URL进行测试,那么我的.NET代码会正常启动并执行。从javascript控制器正常运行时,我的.NET代码不会被调用

2 个答案:

答案 0 :(得分:1)

您没有发布您的控制器代码,因此我不知道它是否相关但请确保您使用JsonRequestBehavior.AllowGet设置了JSON操作。
例如:

public JsonResult GetAllCustomers()
{
    var customers = new List<Customer>
    {
        new Customer { Id = 1, Name = "a"},
        new Customer { Id = 2, Name = "b"},
        new Customer { Id = 3, Name = "c"},
        new Customer { Id = 4, Name = "d"}
    };
    return Json(customers, JsonRequestBehavior.AllowGet); // here
}

如果您js代码位于与controller不同的域中,则应该检查的另一件事是您启用了cors

答案 1 :(得分:0)

我在我的div上错误地使用了ng-model而不是ng-controller。