Javascript Angular$http.get报告200(正常),但响应从未更改
从Ionic和Angular应用程序向HTTP REST API发出get请求。在家庭网络上发出请求时,API接收并正确响应每个请求 但是,当我在4g数据连接上发出相同的请求时,只有第一个请求成功。在所有后续请求中,服务器从未接收到所述请求,但$http.get的行为就好像它接收到响应并报告状态代码为200。在这些情况下,“响应”与初始请求产生的响应从未发生变化 清除应用程序数据将重新启动此循环:清除成功后的第一个请求将重复该响应 这是发出GET请求的函数。Javascript Angular$http.get报告200(正常),但响应从未更改,javascript,angularjs,cordova,http,ionic-framework,Javascript,Angularjs,Cordova,Http,Ionic Framework,从Ionic和Angular应用程序向HTTP REST API发出get请求。在家庭网络上发出请求时,API接收并正确响应每个请求 但是,当我在4g数据连接上发出相同的请求时,只有第一个请求成功。在所有后续请求中,服务器从未接收到所述请求,但$http.get的行为就好像它接收到响应并报告状态代码为200。在这些情况下,“响应”与初始请求产生的响应从未发生变化 清除应用程序数据将重新启动此循环:清除成功后的第一个请求将重复该响应 这是发出GET请求的函数。res的内容显示在下面的屏幕截图中
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;
});
}
更新
莱克斯的回答起了作用。我没有意识到我不能向服务中注入$httpProvider。一旦我把它添加到app.config中,一切似乎都正常工作。仍然不确定为什么它只在数据连接上进行缓存,但是,我在angular文档中找不到任何东西可以说缓存是为数据连接启用的。听起来好像响应被缓存在某个地方。当您希望相同的请求每次都返回相同的响应时,这很有用,但在您的情况下,这显然不是期望的行为。根据您提供的信息,无法知道是什么外部工具/设置导致响应被缓存。听起来响应好像被缓存在某个地方。当您希望相同的请求每次都返回相同的响应时,这很有用,但在您的情况下,这显然不是期望的行为。根据您提供的信息,无法知道是什么外部工具/设置导致响应被缓存。中所述的禁用缓存是否有任何效果?谢谢,这就解决了问题。我之前尝试过使用这个解决方案,但我没有意识到我不能在服务中使用$httpProvider。现在,我已经将它放在app.config中,它似乎按预期工作。@Lex,您应该回答您的评论中所述的禁用缓存是否有任何效果?谢谢,这样就完成了。我之前尝试过使用这个解决方案,但我没有意识到我不能在服务中使用$httpProvider。现在我已经把它放在app.config中了,它看起来像预期的那样工作。@Lex,你应该把你的评论作为一个答案