2014-10-06 86 views
0

我有一個$ http.post調用但回調函數沒有被調用。我有另一個電話的完全相同的代碼,這一個工程。你能看到下面的代碼的任何問題。

var data = {entityIds: $scope.allEntityIds, accountIds: $scope.accountIds}; 
     $http.post("http://localhost:8080/psi4web/rest/social/posts", data, 
        {params: {filter: $scope.filters, 
          pageNum: $scope.pageNum, pageSize: $scope.pageSize}}) 
       .then(function(res) {$log.info("test me")}, onError); 

爲了調試的目的,我在then()中添加了一個內聯函數,如上所示,這也不起作用。我確信數據是由後端返回的。

謝謝。

+0

'$ log.info(test me「)':這是無效的JS代碼打開你的Web瀏覽器控制檯:它應該包含一個錯誤地告訴你JS代碼不能被解析,在開發過程中始終保持打開狀態 – 2014-10-06 19:48:27

+0

因此,網絡標籤中沒有錯誤,請求來自服務器200狀態,並且響應正確? – dfsq 2014-10-06 19:49:04

+0

查看瀏覽器控制檯並查找錯誤日誌。如果出現任何錯誤,請嘗試按照它們尋找問題的根本原因 – gordanvij 2014-10-06 19:57:22

回答

-2

你可能已經忘記注入上$q負責提供阻止您有成功$promise

+0

謝謝,但沒有幫助。我從來沒有注入過它,同一個腳本文件中的類似代碼適用於其他調用。 – enkay 2014-10-06 21:33:17

+1

@enkay明白了,人們已經用懲罰措施懲罰了我:) – developer10 2014-10-06 21:34:20

0

只是一些小細節的依賴。更正了下面的代碼。

var data = {entityIds: $scope.allEntityIds, accountIds: $scope.accountIds}; 
var myPost = $http.post("http://localhost:8080/psi4web/rest/social/posts", data, {params: {filter: $scope.filters, pageNum: $scope.pageNum, pageSize: $scope.pageSize}}); 
myPost.then(function(res){ 
    $log.info("test me"); 
}, function(){ 
    onError(); 
}); 
+0

除了缺少引號(這是發佈此問題時的錯字),我沒有看到我的代碼和您的代碼之間有太大的區別。您將承諾存儲在一個變量中,然後調用then(),並將其鏈接起來。要麼應該工作。 – enkay 2014-10-06 21:42:34

+0

鏈接事物時我從來沒有運氣,所以我採用了這種方法。此外,你不會給你的onError函數的定義,這可能是你會發現你的響應的地方。嘗試使用一些調試代碼替換我的代碼中的onError調用,並查看您得到的結果。 – MBielski 2014-10-06 22:30:10

+0

謝謝,我確實有我的onError函數的定義,只是沒有粘貼代碼在這裏。 – enkay 2014-10-07 06:45:48

0

想通了。問題是,當這個http調用正在被處理時,我有一個.jsp頁面加載另一個頁面,這消除了我的兩個jsp頁面共享的.js腳本中的$ scope。基本上,我的文件結構和加載的東西是不正確的(作爲angularjs的新手)