2016-04-27 45 views
0

我已經創建了一個Web API,它可以從我的瀏覽器的地址行開始工作,但是當我嘗試編寫AngularJS或jQuery調用時,它們會失敗,並且沒有任何解釋。我想我在URL中沒有正確的路線,或者它可能是JSON格式問題。我有一個較早版本的Web API,以及來自AngularJS或jQuery的相同調用。但在早先的版本中,我已經在路線中宣佈了行動。然後,我在RESTful Web API中讀取最佳實踐,即忽略路由中的操作並將路由基於HTTP方法。所以我重新構建了Web API來實現這一點,但現在我無法在客戶端重新連接。有人可以在我的網址路徑中看到錯誤嗎?您可以在此示例中測試URL並在瀏覽器中查看數據。如何在AngularJS或jQuery中編寫Web API調用

注:我想我已經解決了這個問題。我需要在我的新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); 
 
       });

+0

我想$ HTTP應該發送一個對象,我總是用$ HTTP像一個過程:var req = { \t方法: 'GET', \t網址:\t「您的網址' }; $ http(req).then(function successCallback(successData){}, function(errorCallback(errorData){}); hm,顯示控制器和模型的source-cod,是的,檢查json格式器 –

+0

只需添加你的端點api地址爲$ http.get()而不是整個url,使用:var sURL2 =「api/Securities?SecurityType = CASH」; –

+0

routeconfig中定義的路由是什麼? –

回答

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); 
 
       });

相關問題