【发布时间】:2017-08-05 19:28:54
【问题描述】:
在查看 How to read response headers in angularjs? 时,我看到的答案涉及在页面加载后 发出 http/ajax 请求,然后获取响应标头。
我有一个 angularJS 应用程序,它需要在我的 python 后端添加的自定义响应标头键中使用一些 JSON 来呈现页面(在加载时立即,而不是之后)。
有没有一种简单的方法可以做到这一点?还是尝试使用 AngularJS 来解析响应标头来呈现网页本身就是一种 hack?
我的标题看起来像这样(我正在尝试获取myjson):
Keep-Alive:timeout=1, max=100
myjson:{"key2": "value2", "key1": "value1"}
Server:Apache
【问题讨论】:
-
这并不是 AngularJs 的真正设计方式;在 AngularJs 中,一切 都是通过 AJAX 调用完成的,包括模板请求、JSON 数据请求等。我 假设 从您的问题中,JSON 嵌入在
index.html,其中 angular 无法访问,因为 angular 直到浏览器遇到它的<script>标签才会加载。 -
@Claies 这可行吗:index.html 加载 => 调用 angular=> 同时加载模板和标题,用标题数据填充模板?
-
不使用解析模板的内置方法(
ng-Route或ng-template),没有。您可以编写一个自定义方法来检索模板及其标头,或者编写一个拦截器,但这不是 angular 期望接收数据的方式。您将数据与结构信息混合在一起,确实违反了 SRP。 -
为什么要将 JSON 数据放入标头中?为什么不把它放到 AngularJS 应用的初始化块中呢?
-
听起来你的后端有问题。如果数据可以在标头中注入,它应该可以在 HTTP 响应的正文中注入。
标签: angularjs http response httpresponse