5

我想用 AngularJS 制作一个显示媒体(图像或视频)的指令。

为了实现这个目标,我必须确定媒体的类型,为此我想对 url 发出 AJAX 请求并获取 Content-Type 标头,但我在文档中没有找到类似的东西。

你有一些提示吗?

4

3 回答 3

7

您可以使用$http获取所有标头:

$http({method: 'GET', url: '/someUrl'}).
  success(function(data, status, headers, config) {
      var contentType = headers('Content-Type');
      // use the content-type here
  })
于 2013-06-10T06:05:40.833 回答
2

你可以用 jQuery 做到这一点:

$.ajax({
    url:'/someUrl',
    type: 'GET',
    success:function(res, status, xhr){
        var contentType = xhr.getResponseHeader('Content-Type');
    }
});
于 2013-06-10T06:21:58.977 回答
1

经过两个多小时的搜索,这是我为 angularJS 1.x找到的最佳答案:

$http({
    method: method,
    url: url,
    data: data,
    header: {'Content-Type': 'application/x-www-form-urlencoded'},
    timeout: 30000
})
    .then(
        //success function
        function(response){
            console.log(response.headers('content-type'));
        },
        //error function
        function(response){
        }
    );

主要部分是response.headers('content-type')

注 1:此解决方案适用于 angular 1.x。

注2:此方法使用then(成功函数,错误函数),比elder方法(成功和错误分开)要好得多,也更可靠

于 2017-06-24T14:08:52.727 回答