我的页面上有一个链接,我正在尝试生成一个 PDF 文档,然后在浏览器上显示“打开 - 保存”提示。
我的 HTML(reactjs 组件)具有以下代码,其中onclick
调用_getMyDocument
函数,然后调用 Webapi 方法。
<div className="row">
<a href="#" onClick={this._getMyDocument.bind(this)}>Test Link</a>
</div>
_getMyDocument(e) {
GetMyDocument(this.props.mydata).then(()=> {
}).catch(error=> {
});
我的控制器有以下代码
[HttpPost]
[Route("Generate/Report")]
public IHttpActionResult GetMyReport(MyData myData)
{
byte[] myDoc = MyBusinessObject.GenerateMyReport(myData);
var result = new HttpResponseMessage(HttpStatusCode.OK)
{
Content = new ByteArrayContent(myDoc)
};
result.Content.Headers.ContentDisposition =
new ContentDispositionHeaderValue("attachment")
{
FileName = "MyDocument.pdf"
};
result.Content.Headers.ContentType =
new MediaTypeHeaderValue("application/octet-stream");
var response = ResponseMessage(result);
return response;
}
目前所有代码都执行,但我没有收到文件 PDF 下载提示。我在这里做错了什么?
ajax 调用成功时的响应对象如下所示