簡體   English   中英

來自Angular JS的HTTP Get請求收到空回復

[英]HTTP Get request from Angular JS receives empty reply

由於我是Web開發的新手,因此這很可能很容易解決。 不幸的是,我自己無法解決此問題,因為我不知道在哪里搜索。

目前,我正在嘗試從本地計算機上運行的ASP.NET Web API中獲取數據。 為了獲得這些數據,我使用AngularJS編寫了一小段JavaScript:

function MainController($scope, $http) {
  $http.get("http://localhost/DBLayerDLL/api/tablets/1005").
    then(function(response) {$scope.data=response;},
         function(response){$scope.data=response;});
}

使用的HTML頁面也非常簡單:

<!DOCTYPE html>
<html ng-app>

  <head>
    <script data-require="angular.js@*" data-semver="1.3.0-beta.5" src="https://code.angularjs.org/1.3.0-beta.5/angular.js"></script>
    <script src="scripts/main.js"></script>
  </head>

  <body ng-controller="MainController">
    <h1>Hello World!</h1>
    <div>
      <div>Data: {{data}}</div>
    </div>
  </body>

</html>

Web API中控制器的操作實現如下:

[RoutePrefix("api/tablets")]
public class TabletsController : ApiController
{
    [Route("{ID}")]
    [HttpGet]
    public TabletRecord GetTablet(int ID)
    {
        TabletRecord tablet = new TabletRecord();
        tablet.LoadFromID(ID);
        return tablet;
    }
}

問題出在我從HTTP請求獲得的響應之內。 當打印在頁面上時,它看起來像這樣:

{"data":"","status":0,"config":{"method":"GET","transformRequest":[null],"transformResponse":[null],"url":"http://localhost/DBLayerDLL/api/tablets/1005","headers":{"Accept":"application/json, text/plain, */*"}},"statusText":""}

這是不正確的,因為我知道我的API將返回數據。 當我使用Fiddler看看發生了什么時,這對我來說甚至變得更加奇怪。 在Fiddler中,我可以看到請求,並且看到響應與我在網頁上看到的完全不同:

Fiddler HTTP請求

由於缺乏知識和經驗,我不知道發生了什么...

  • 我的JavaScript有什么錯嗎?
  • 我應該在HTML頁面中做其他事情嗎?
  • 還是我的Web API中需要任何特殊的東西?

任何幫助或想法都將受到高度贊賞!

在花了更多時間之后,我發現需要一些事情來解決我的問題:

  1. 我注意到,為了使JavaScript能夠向我的Web API發出請求,我必須在Web API上啟用CORS。 我是通過此鏈接進入此頁面的,我只是按照說明的步驟進行安裝和運行。

  2. 我還首先發現,我還可以使用JavaScript中可用的常規XMLHttpRequest對象獲取數據。 通過首先使用此方法顯示數據,我還發現了下一項:

  3. $http.get方法返回的響應對象實際上是我的Web API直接返回的對象。 因此,我只能使用定義的屬性來顯示所需的數據。

在普通的PHP上,我得到的角度變量

$data = file_get_contents("php://input");

你應該看看

print_r($data);

包含您所需要的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM