2017-04-06 146 views
-1

爲什麼$ http服務完成請求,然後加載JSON數據?

Minimal code example

var vm = this; 
$http 
    .get("/getData") 
    .then(function (data) { 
    // promise is resolved but I still don't have access to the data 
    vm.data = data; 
    }); 

當我測試這在鉻瀏覽器我看到以下內容:

  • 掛起的請求( 「/的getData」)
  • 狀態碼:200(請求完成)
  • in preview or 響應標籤沒有響應數據可用
  • 谷歌檢查員的底部:1.5 MB(響應數據)傳送5秒

當請求完成後

  • JSON響應數據可用(並顯示狀態200確定)我希望能夠訪問響應數據(即未下載)。


    結論

    即使請求與代碼狀態200 OK完成我的承諾是準備好了,我還是要等待5秒鐘,傳輸的數據。

  • +0

    你能提供一個可測試的例子嗎?從來沒有這個問題,所以可能是你的實現導致它。從5秒響應 –

    +0

    它是從後端問題我猜,但我想知道你是如何知道它需要5秒? 請提供一個運動員 –

    +0

    你在做什麼?從後端下載?和btw這裏是什麼'this'?你可以試試'$ scope.postData = data.data' –

    回答

    1

    對於角度$http服務,網絡選項卡顯示了針對單個API調用的兩種請求,其中一個是具有OPTION方法調用的API。方法允許客戶端確定與資源相關的選項和/或要求或服務器的能力,而不暗示資源動作或啓動資源檢索。第二個可能是您的實際API調用。您可以檢查網絡選項卡。這是$http服務默認行爲。

    +0

    @ que1326:請檢查網絡選項卡是否顯示兩個針對單個API調用的調用,以及哪一個是OPTION方法。 –