【问题标题】:AngularJS and Asp.Net WebApi not showing data in firefox / chromeAngularJS 和 Asp.Net WebApi 未在 firefox / chrome 中显示数据
【发布时间】:2014-04-11 03:32:45
【问题描述】:

我有一个在端口 8080 上运行的 Asp.Net WebApi 服务器,它公开了一个 GET 方法(比如说IEnumerable<Friend> Get())。

我在端口 55163 上运行另一个 Asp.Net 站点,其中包含一个 AnugularJs 项目。

当我从角度控制器调用$resource('...localhost:8080/api/friends') 并呈现如下数据时:

<ul>
    <li ng-repeat="friend in friends">
        {{friend.name}} who is {{friend.age}} years old.
    </li>
</ul>

该页面未在 Firefox 和 Chrome 中显示任何列表。我注意到到目前为止,使用 IE 没有问题。

我一直在检查来自 Firefox 的 XHR 请求调用,并且 JSON 已正确返回给客户端。

我正在使用 AngularJs 1.2.16 和 AspNet.WebApi 5.1.2

更多详情

如果我这样做(不调用服务)在我的控制器中:

$scope.friends = [
    { name: 'Person1', age: 30 },
    { name: 'Person2', age: 30 }
];

范围设置正确,但如果我这样做:

$http.get('...localhost:8080/api/friends').success(function (data) {
    $scope.friends = [];
    angular.forEach(data, function (item) {
        $scope.friends.push(item);
    });
});

或者那个:

var userResource = $resource('...localhost:8080/api/friends');
userResource.query({ method: 'GET', isArray: true }, function (data) {
    $scope.friends = [];
    angular.forEach(data, function (item) {
        $scope.friends.push(item);
    });
});

范围未填充...(或仅适用于 Internet Explorer)

更新 1

如果我把所有东西都放在同一个服务器下然后工作,我想知道它是否与 CORS 有某种关系。

【问题讨论】:

    标签: angularjs asp.net-web-api


    【解决方案1】:

    检查 AngularJS 问题的第一个地方是浏览器控制台。通常会在此处记录任何错误。

    如果没有错误,friends 可能没有正确填充。有没有试过调试 XHR 的结果并确认结果是否正在分配给朋友?

    【讨论】:

    • 查看更多详情。谢谢!
    • 如果在IE的query()方法中设置断点,是否命中?换句话说,forEach 循环是否正在运行?
    • 是的,在 IE 中使用 vs2013 调试器到达断点并且正确填充了 javascript 数组
    • 不,这真是一种奇怪的行为!
    • 类似问题。 . .我对 WebApiController 方法的调用返回了所有记录,当在 VS2013 调试模式下本地运行时,我可以在 cshtml 页面上看到所有记录,但是当发布到 IIS 服务器时,没有数据显示。我的库是在本地引用的,这不是 CSS 问题。在 Chrome 中,所有库在运行时都在那里。控制台没有脚本错误。数据未从 IIS 服务器绑定到转发器。 WTF!?!?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-18
    • 2017-07-26
    • 2012-01-14
    • 1970-01-01
    • 1970-01-01
    • 2014-12-11
    • 1970-01-01
    相关资源
    最近更新 更多