AngularJS $http日期头

3

我正在尝试从AngularJS $http.get请求中检索$http日期标头,以便获取服务器时间。

app.controller('MainCtrl', function($http,$scope) {
  $scope.name = 'World';

  $http({method: 'GET', url: 'http://graph.facebook.com/facebook'}).then(function(response){
    console.log(response);
  })
});

尽管我在 Chrome 工具上检查时看到了日期头,但似乎无法检索它。

1个回答

6

尝试一下这个:

   $http({method: 'GET', url: 'http://graph.facebook.com/facebook'}).then(function(response){
         var data = response.data,
            status = response.status,
            headers = response.headers(),
            config = response.config;
      })

headers 将包含以下内容:

headers: {
  "date": "Mon, 02 Mar 2015 23:02:51 GMT",
  "content-encoding": "gzip",
  "server": "Apache",
  "vary": "Accept-Encoding",
  "content-type": "text/html",
  "connection": "Keep-Alive",
  "keep-alive": "timeout=10, max=500",
  "content-length": "39"
}

访问日期:

headers.date

由于这是对Facebook API的CORS请求:响应头将仅包含

Content-Type
Last-modified
Content-Language
Cache-Control
Expires
Pragma

问题是由于请求头中缺少Access-Control-Allow-Headers引起的。为了解决这个问题,我们需要在您的运行方法中添加Access-Control-Allow-Headers: *到请求头。

小改动:应该是response.headers()。 - mohamedrias
在您的回复中没有日期字段。当我尝试打印标题时,我得到了以下内容:cache-control: "private, no-cache, no-store, must-revalidate"content-type: "application/json; charset=UTF-8"expires: "Sat, 01 Jan 2000 00:00:00 GMT"pragma: "no-cache" - mohamedrias
1
是的,这就是我在问的...因为头部确实随响应一起返回,但没有办法检索它? - yangli-io
您IP地址为143.198.54.68,由于运营成本限制,当前对于免费用户的使用频率限制为每个IP每72小时10次对话,如需解除限制,请点击左下角设置图标按钮(手机用户先点击左上角菜单按钮)。 - yangli-io
@YangLi,希望我们当天通过在头部添加“Access-Control-Allow-Headers:*”来修复了它。然后你接受了答案。我想知道为什么现在从接受的答案中删除了它?如果您尝试了其他方法使其工作,请分享一下,以便我们可以了解。 - mohamedrias
显示剩余6条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接