2016-03-17 89 views
1

從Ionic和Angular應用程序發出對HTTP REST API的獲取請求。在家庭網絡上提出請求時,API會正確接收並響應每個請求。

但是,當我在4g數據連接上發出相同的請求時,只有第一個請求成功。在接下來的所有請求中,服務器都不會收到所述請求,但$ http.get就像接收到響應並報告狀態碼爲200.在這種情況下,「響應」永遠不會改變初始請求導致的響應。

清除應用程序數據將重新啓動此循環:清除成功後的第一個請求,並且該響應會重複。

這是發出GET請求的函數。 res的內容顯示在下面的屏幕截圖中。

this.getSongInfo = function() { 
    return $http.get('http://REDACTED:8080/getName').then(function(res) { 
     console.log(res); 
     return res.data; 
    }, function(err) { 
     console.log(err); 
     return false; 
    }); 
    } 

A screenshot of the response from the $http.get function. The response is the same as the first request each time after

UPDATE Lex的答案幫助。我沒有意識到我無法將$ httpProvider注入到服務中。一旦我添加它作爲我的app.config一切似乎正常工作。仍然不確定爲什麼只有在數據連接時才進行緩存,但在角度文檔中找不到任何數據連接啓用緩存的情況。

+0

按照[本答案](http://stackoverflow.com/a/19771501/548997)中所述禁用緩存是否有任何影響? – Lex

+0

謝謝,這已經成功了。我早些時候嘗試過使用這個解決方案,但是我沒有意識到我不能在服務中使用$ httpProvider。現在,我已經把它放在我的app.config中,似乎按預期工作。 – papahummle

+0

@Lex,你應該讓你的評論一個答案 – Ladmerc

回答

0

這聽起來像響應被緩存在某處。當你期望同一個請求每次都返回相同的響應時,這很有用,但是你的情況顯然不是所需的行爲。根據您提供的內容,無法知道外部工具/設置是如何導致響應被緩存的。

相關問題