在我正在开发的 Angular JS 应用程序中,我正在使用一项服务定期(在 a 中$timeout
)向我的 API 中的 URL 发出 GET 请求(Angular 应用程序和 API 都从本地主机上的端口 5000 提供服务)。
出于某种原因,似乎 $http 实际上并未发送 GET。对于 each $http.get()
,.error()
使用空数据和状态 0 调用。当我检查服务器日志时(我正在为我的服务器运行带有 Unicorn gem 的 Ruby on Rails 后端),服务器似乎从未收到请求来自角。
这是我的服务中的功能:
updateUserStatus = () ->
$http.get('/api/v1/status').success (statusData) ->
# update the variable and notify the observers
this.userStatus = statusData
notifyObservers()
startStatusTimeout()
.error (error, status) ->
# if there's an error, log it
console.log 'error:'
console.log error
console.log status
startStatusTimeout()
真正奇怪的是它只偶尔发生。当它停止工作时,我可以将 中的 URL 更改$http.get()
为'/api/v1/status.json'
,并且它可以工作。一阵子。然后我把它切换回来,它又可以工作了一段时间……显然有一些更大的问题在起作用。
我已经绞尽脑汁好几天了,我在 SO 上看到了很多类似的问题,但它们似乎都可以通过在 Angular 中实现 CORS 来解决,我认为这不适用于我的情况因为这一切都来自localhost:5000
. 我错了吗?这是怎么回事?
作为参考,我使用的是 Angular 1.0.7 版。