Angular $ http.get报告200(OK),但响应永远不会改变

时间:2016-03-17 15:27:26

标签: javascript angularjs cordova http ionic-framework

从Ionic和Angular应用程序向HTTP REST API发出get请求。在家庭网络上发出请求时,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,一切似乎都正常。仍然不确定为什么它只是在数据连接上进行缓存时,我在角度文档中找不到任何说明为数据连接启用了缓存。

1 个答案:

答案 0 :(得分:0)

听起来响应正在某处缓存。当您希望每次都返回相同的响应时,这很有用,但在您的情况下,这显然不是所需的行为。根据您提供的内容,无法知道哪些外部工具/设置导致响应被缓存。