Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.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
Ajax Angular 8获取带有auth头的txt文件_Ajax_Angular_Http_Get Request - Fatal编程技术网

Ajax Angular 8获取带有auth头的txt文件

Ajax Angular 8获取带有auth头的txt文件,ajax,angular,http,get-request,Ajax,Angular,Http,Get Request,我正在尝试实现一个下载链接,供用户下载.txt文件中的记录 首先是一个简单的 我可以从服务器下载.txt格式的文件。但我发现它并没有带来Auth头。所以我尝试使用HTTPGET方法来获取它 service.js getCdrFile(url){ 返回this.http.get(`${this.env.service}/service/api/downloadFile?`+url); } component.js 下载文件(url){ this.service.getCdrFile(url).

我正在尝试实现一个下载链接,供用户下载.txt文件中的记录

首先是一个简单的

我可以从服务器下载.txt格式的文件。但我发现它并没有带来Auth头。所以我尝试使用HTTPGET方法来获取它

service.js

getCdrFile(url){
返回this.http.get(`${this.env.service}/service/api/downloadFile?`+url);
}
component.js

下载文件(url){
this.service.getCdrFile(url).subscribe(
数据=>{
控制台日志(数据);
},
错误=>{
console.log(错误);
}
);
}
我可以用auth head成功地调用API,然后在我点击下载按钮后,除了Chrome开发者工具中“response”选项卡中显示的txt数据外,什么都没有发生。而且,我从
console.log(数据)中什么也没有得到在我的http请求中

我可以下载这个文件吗?谢谢

(以下是我的回应细节)


从服务器下载文件有两种方法

1:-)从HTTP调用获取响应以创建base64并创建虚拟锚标记并下载


2:-)将后端响应修改为下载响应。

从服务器下载文件有两种方法

1:-)从HTTP调用获取响应以创建base64并创建虚拟锚标记并下载


2:-)将后端响应修改为下载响应。

您可以创建Blob响应并使用它创建Blob url,然后动态下载

服务:

  • 修改服务以接收blob响应

Stackblitz:

您可以创建一个Blob响应,并使用它创建一个Blob url,然后动态下载

服务:

  • 修改服务以接收blob响应

Stackblitz:

在http之后,使用响应创建blob,并通过创建虚拟锚元素并触发单击来下载blob发布的解决方案对您有效吗?在http之后,使用响应创建blob并通过创建虚拟锚元素并触发单击来下载blob发布的解决方案对您有效吗?
# GENERAL
Request URL: http://localhost:8080/service/api/downloadFile?fileType=daily&trsDate=20190918
Request Method: GET
Status Code: 200 
Remote Address: 127.0.0.1:8080
Referrer Policy: no-referrer-when-downgrade

# RESPONSE HEADER
Accept-Ranges: bytes
Access-Control-Allow-Origin: *
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Connection: keep-alive
Content-Disposition: attachment; filename=20190918.txt
Content-Type: application/json
Date: Wed, 02 Oct 2019 03:51:01 GMT
Expires: 0
Pragma: no-cache
Server: nginx/1.15.2
Transfer-Encoding: chunked
X-Content-Type-Options: nosniff
X-Frame-Options: DENY
X-XSS-Protection: 1; mode=block
getImage() {
  return this.httpClient.get(
    your_image_link, 
    {
      responseType: 'blob', // <-- add this
      headers: {your_headers}
    }
  );
}
downloadImage() {
  this.service.getImage().subscribe(img => {
    const url = URL.createObjectURL(img);
    const a = document.createElement('a');
    a.download = "filename.txt";
    a.href = url;
    a.click();
    URL.revokeObjectURL(url);
  });
}