Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/373.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用POST从API下载PDF_Javascript_C#_Asp.net Web Api - Fatal编程技术网

Javascript 使用POST从API下载PDF

Javascript 使用POST从API下载PDF,javascript,c#,asp.net-web-api,Javascript,C#,Asp.net Web Api,我试图发布一个带有一些头信息和其他参数的请求到我的api,然后让它返回一个PDF文件 我的API通信工作得很好,但是我尝试了几种查看PDF的方法,没有一种方法能100%工作。 下面的方法是在stackoverflow上找到的,它以PDF格式返回响应数据,但是当它转换为blob以查看时,它将变为空白 [API] HttpResponseMessage response = new HttpResponseMessage(HttpStatusCode.OK); ReturnInformationIT

我试图发布一个带有一些头信息和其他参数的请求到我的api,然后让它返回一个PDF文件

我的API通信工作得很好,但是我尝试了几种查看PDF的方法,没有一种方法能100%工作。 下面的方法是在stackoverflow上找到的,它以PDF格式返回响应数据,但是当它转换为blob以查看时,它将变为空白

[API]
HttpResponseMessage response = new HttpResponseMessage(HttpStatusCode.OK);
ReturnInformationITEM rtn = GetPDFData(); //Comes back as Base64
response.Content = new ByteArrayContent(System.Convert.FromBase64String(rtn.Data));
response.Content.Headers.ContentType = new MediaTypeHeaderValue("application/pdf");
return response;


[client]
var blob=new Blob([result], {type: 'application/pdf'});
var pom = document.getElementById("pdf" + $counter); 
pom.setAttribute('href',window.URL.createObjectURL(blob));
pom.setAttribute('download',"Test.pdf");
pom.setAttribute('target','_blank');

'I did have a click event here but firefox ignores it so I have to pass the href back to the pom and manully click it'
如果我修改API以返回base64,并让客户端在成为blob之前对其进行解码,它将重新应用页面,但带有难看的blob URL,并且在safari中保存时,它无法识别“下载”属性

有人知道一种可以跨浏览器工作并允许预先填充文件名的方法吗?如果可能,在返回post数据时自动显示文件

谢谢


Mark

我能想到的唯一正确方法是创建一个文件服务器sive并向下传递链接,即href将指向一个真实的文件并按其应该的方式操作。我能想到的唯一正确方法是创建一个文件服务器sive并向下传递链接,即href将指向一个真实的文件并按其应该的方式操作。