无法从http.get头部获取content-disposition?

10
我正在使用Web API + Angularjs下载文件,目前一切正常。但是,我在Web API的标头中发送了“content-disposition”,但无法在响应标头中访问它。
WebAPI:
[HttpGet]
[AllowCrossSiteJson]
public HttpResponseMessage GetAcquisitionsTemplate()
{
    var docContent = _d.FirstOrDefault();
    Stream stream = new MemoryStream(docContent.Content);
    HttpResponseMessage result = new HttpResponseMessage(HttpStatusCode.OK);
    string contentDisposition = string.Concat("attachment; filename=", docContent.Name.Replace(" ", String.Empty), "." + docContent.Extension);
    result.Content = new StreamContent(stream);
    result.Content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream");    
    result.Content.Headers.ContentDisposition = ContentDispositionHeaderValue.Parse(contentDisposition);
    return result;            
}

客户端(AngularJs):

$http.get(url)success(function (data, status, headers) {
    var header= headers();
})
在头部我得到了以下数值,但是我不能获取content-disposition。请纠正我错在哪里? enter image description here
1个回答

16

我猜你试图从本地主机访问服务器上的文件,如果是这种情况,请向你的服务器团队请求允许使用Access-Control-Expose-Headers('Content-Disposition')。使用此标头,像Content-Disposition这样的自定义标头将可在跨域访问时访问。


这是在Rails后端执行的方法:http://jaketrent.com/post/expose-http-headers-in-cors/ - Nuno Silva

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