在查看 How to read response headers in angularjs? 时,我看到的答案涉及在页面加载之后发出http / ajax请求然后获取响应标头。
我有一个angularJS应用程序需要使用我在python后端添加的自定义响应标头键中的一些JSON来呈现页面(在加载时立即呈现)。
有非hacky这样做的方法吗?或者是尝试使用AngularJS渲染网页来解析响应标头本身就是黑客攻击?
我的标题看起来像这样(我试图获得myjson
):
Keep-Alive:timeout=1, max=100
myjson:{"key2": "value2", "key1": "value1"}
Server:Apache
答案 0 :(得分:0)
我认为这是您的目标,使用$ http和ngRoute。如果我误解了,请原谅我。它只是通过SO的API加载有关此问题的数据。如果单击“加载数据”,您将在该页面上看到来自SO的标题。
var app = angular.module('plunker',['ngRoute']);
app.config(['$routeProvider',
function($routeProvider) {
$routeProvider.
when('/home', {
template: '<h1>Test 1</h1>',
controller: 'HomeCtrl'
}).
when('/loaddata', {
templateUrl: 'load_data.html',
controller: 'LoadDataCtrl',
resolve: {
stackQuestion: function($http){
// We must return something with a promise. $http already does that, so does $resource.
// See: https://docs.angularjs.org/api/ng/service/$q
return $http({
method: 'GET',
url: 'https://api.stackexchange.com/2.2/questions/37491743?order=desc&sort=activity&site=stackoverflow'
})
}
}
}).
otherwise({
redirectTo: '/home'
})
}
]);
然后,在你的控制器中:
app.controller('LoadDataCtrl',function(stackQuestion,$scope){
// now our data is here
$scope.question = stackQuestion.data;
$scope.headers = stackQuestion.headers();
});