小编Mik*_*123的帖子

拦截器不拦截http请求(Angular 6)

我正在为我的角度6项目添加一个拦截器.要调用我的API,我需要为所有调用添加一个承载令牌.不幸的是,似乎没有调用拦截器.我的代码:

import { Injectable } from "@angular/core";
import { HttpInterceptor, HttpRequest, HttpHandler, HttpEvent } from "@angular/common/http";
import { Observable } from "rxjs";

@Injectable()
export class AuthInterceptor implements HttpInterceptor {

    intercept(req: HttpRequest<any>,
              next: HttpHandler): Observable<HttpEvent<any>> {

        //Retrieve accesstoken from local storage
        const accessToken = localStorage.getItem("access_token");

        //Check if accesToken exists, else send request without bearer token
        if (accessToken) {
            const cloned = req.clone({
                headers: req.headers.set("Authorization",
                    "Bearer " + accessToken)
            });

            console.log('Token added to HTTP request');

            return next.handle(cloned);
        }
        else {
            //No token; …
Run Code Online (Sandbox Code Playgroud)

angular

13
推荐指数
4
解决办法
2万
查看次数

无法从API在Angular 7中下载blob作为文件

我在使文件下载在我的应用程序中工作时遇到了一些麻烦。要下载文件,我正在使用API​​进行新的调用,以将数据输入到应用程序中。我已经使用Postman测试了此API,并且由于可以通过调用下载文件,因此它似乎可以正常工作。

不幸的是,在将其实现到Angular应用程序时遇到了一些问题。当我调用下面的函数时,由于无法打开,因此我得到的是“损坏”文件。我已经检查了与我的问题有关的其他问题/解决方案,但是在尝试了大多数问题/解决方案后,我没有得到进一步的解决。

我服务中的电话:

DownloadFile (companyId: string, fileId: string, extension: string, fileName: string): Observable<Blob> {
   const options = { responseType: 'blob' as 'json' }
   return this.http.get<Blob>(this.baseApiUrl + this.baseTag + "?companyId=" + companyId + "&fileId=" + fileId + "&extension=" + extension + "&fileName=" + fileName, options)
 }
Run Code Online (Sandbox Code Playgroud)

使用服务调用:

this.data.DownloadFile(this.company.id, selectedItem.id, this.getFileNameWithoutExtension(selectedItem.fileName), this.getExtensionFromFileName(selectedItem.fileName))
    .subscribe(resultBlob => 
      {
        //Success
        console.log('start download:', resultBlob);
        var blob = new Blob([resultBlob], { type: "application/pdf" } );
        saveAs(blob, selectedItem.fileName);
      },
    error => {
      //Error
      console.log(error);
    });
Run Code Online (Sandbox Code Playgroud)

我没有看到这段代码有什么问题。

api angular angular-httpclient angular7

5
推荐指数
1
解决办法
6477
查看次数

使用Angular 6设置输入字段的值

我在使用Angular设置输入元素的值时遇到了一些麻烦.

我试图通过此方法在我的应用程序中设置动态创建的输入元素的值:

copyPricingToAll(): void {
  var copyValue: string = document.getElementById("priceInputGlobal").value;

  this.currentItem.orderLines.forEach(orderLine => {
  document.getElementById("priceInput-" + orderLine.id).setAttribute("value", copyValue);
   });
  }
Run Code Online (Sandbox Code Playgroud)

我正在创建这样的行:

<ng-container *ngFor="let orderLine of currentItem.orderLines let i=index">
    <tr>
       <td>{{getCorrectTimeString(orderLine)}}</td>
       <td>{{orderLine.quantity}}</td>
       <td><input id="priceInput-{{orderLine.id}}" type="number" value="{{orderLine.price}}"></td>
    </tr>
</ng-container>
Run Code Online (Sandbox Code Playgroud)

不幸的是.value不被认为是有效的操作.我不确定如何在angular中正确设置动态创建元素的值.我希望有人能够帮助我解决这个问题.

typescript angular

4
推荐指数
3
解决办法
7万
查看次数

标签 统计

angular ×3

angular-httpclient ×1

angular7 ×1

api ×1

typescript ×1