如何在angularjs $ http.get

时间:2015-05-28 22:43:37

标签: angularjs content-type

我在angular中使用以下代码来调用返回字节数组的Web API。 我想将ContentType设置为' application / pdf',这在jQuery ajax调用中非常简单,但是无法在angularjs中找到一种方法。

问题:我如何为angularjs中的代码执行此操作?

  return $http.get('/api/v1/alarms/exportsummarytopdf?start=2011-03-
     30T05:00:00.000Z&end=2015-04-14T05:00:00.000Z')
    .then(getSummaryPdfExportComplete)
           .catch(function (message) {
               exception.catcher('XHR failed for getSummaryPdfExport')(message);
           });

        function getSummaryPdfExportComplete(response) {
            logger.info('getSummaryPdfExport: complete');
            return response.data;
        }

更新1

当我直接访问类似的网址时,Chrome会清楚地将内容类型显示为' application / pdf'。可能是我在调用返回字节数组的web api时需要使用其他东西。

enter image description here

Chrome中显示的错误如下所示。 enter image description here

当我使用responseType时,此失败请求的标头:' arraybuffer'如下。 enter image description here

1 个答案:

答案 0 :(得分:4)

基本问题的简短回答是,如果要在$ http.get()调用中设置标题,请将其作为“config”(第二个可选参数)的一部分发送。

E.g:

$http.get('/api/v1/alarms/exportsummarytopdf?start=2011-03-
  30T05:00:00.000Z&end=2015-04-14T05:00:00.000Z',
  {headers: { 'Accept': 'application/pdf' });

对于您的具体问题,您似乎想要“接受”而不是“内容类型”。

有关详细信息,请参阅HTTP headers