我在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时需要使用其他东西。
Chrome中显示的错误如下所示。
当我使用responseType时,此失败请求的标头:' arraybuffer'如下。
答案 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。