如何在AngularJS或jQuery中编写Web API调用

时间:2016-04-27 03:50:47

标签: jquery angularjs asp.net-web-api

我已经创建了一个从我的浏览器的地址行工作的Web API,但是当我尝试编写AngularJS或jQuery调用时,它们失败了,没有任何解释。我想我在URL中没有正确的路由,或者它可能是JSON格式问题。我有一个早期版本的Web API和AngularJS或jQuery的相同调用。但是在早期的版本中,我已经在路线中宣布了行动。然后我在RESTful Web API中读取最佳实践,省略路由中的操作并将路由基于HTTP方法。所以我重建了Web API以便这样做,但现在我无法在客户端重新连接。有人可以在我的URL路由中看到错误吗?您可以在此示例中测试URL并在浏览器中查看数据。

注意:我想我已经解决了这个问题。我需要在我的新Web API中添加JSON格式化程序。这是我的第一个版本。这是我到目前为止发现的唯一区别。

            var sURL2 = "http://stevegaines.info/api/Securities?SecurityType=CASH";
            $http.get(sURL2)
                .then(function (oData)
                {
                    alert("oData = " + oData);
                    $scope.Securities = oData;
                }, function (response)
                {
                    alert("error = " + response.statusText);
                });

1 个答案:

答案 0 :(得分:1)

我终于开始工作了。我认为问题在于客户端javascript,但我也重新编写了Web API,所以我不确定。我知道在javascript中改变的一件事是我使用了jQuery .success方法,但我将其更改为.then,因为jQuery弃用了.success。当我这样做时,我不得不使用dataResponse的data属性。只是简单的dataResponse赢了。我猜它是一种不同类型的物体。



            $http.get(sURL2)
                .then(function (dataResponse)
                {
                    // this doesn't work
                    // $scope.Securities = dataResponse.data.records;
                    // this doesn't work
                    // $scope.Securities = dataResponse;

                    // this works
                    $scope.Securities = dataResponse.data;
                }, function (response)
                {
                    alert("error = " + response.statusText);
                });