【发布时间】:2017-09-01 03:36:15
【问题描述】:
为什么 $http 服务完成请求然后加载 JSON 数据?
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;
});
当我在 chrome 浏览器中测试时,我看到以下内容:
- 待处理的请求(“/getData”)
- 状态码:200(请求完成)
- 在 preview 或 response 选项卡中没有可用的响应数据
- 在 google 检查器 底部:已传输 1.5 MB(响应数据)
- json 响应数据在 5 秒后可用
当请求完成(并显示 Status 200 OK)时,我希望能够访问响应数据(尚未下载)。
结论
即使请求以 code status 200 OK 结束并且我的 promise 已准备就绪,我仍然需要等待 5 秒才能传输数据。
【问题讨论】:
-
你能提供一个可测试的例子吗?从来没有遇到过这个问题,所以可能是您的实现导致了它。
-
从 5 秒的响应中我猜是后端的问题,但我想知道你怎么知道它需要 5 秒?请提供一个plunker
-
你在做什么?从后端下载?顺便说一句,这里的
this是什么?你可以试试$scope.postData = data.data -
this.data = data可能是错误的,因为它指的是function范围,我认为这不是您想要的。 -
@Hinrich 是的,反正没关系
标签: javascript angularjs http xmlhttprequest