【问题标题】:Pass headers in a get request using Angular 7使用 Angular 7 在获取请求中传递标头
【发布时间】:2019-03-07 06:24:48
【问题描述】:

我正在尝试使用 Angular 7 在我的 get 请求中传递标头。标头是授权令牌。我只是尝试执行以下操作

  this.http.get('url', {Authorization: 'Basic xzeydyt=='});

我现在收到以下错误

'{ Authorization: string; 类型的参数}' 不能分配给类型为 '{ headers?: HttpHeaders | { [标题:字符串]

【问题讨论】:

标签: angular


【解决方案1】:

您需要创建HttpHeaders 的新实例并将其传递给get 方法的参数。

您还需要导入HttpHeaders 才能使用它

import { HttpHeaders } from '@angular/common/http';

因此,您将按如下方式构建标题:

let headers = new HttpHeaders();
headers = headers.set('Authorization', 'Basic xzeydyt==');

然后您可以将其传递给 get 方法,如下所示:

this.http.get('url', { headers: headers });

【讨论】:

    【解决方案2】:

    您可以使用这种方法来实现这一点,

    import { HttpHeaders } from '@angular/common/http';
    
    const httpOptions = {
      headers: new HttpHeaders({
        'Content-Type':  'application/json',
        'Authorization': 'my-auth-token'
      })
    };
    

    GET 请求示例,

    addBook (book: Book): Observable<Book> {
      return this.http.get<Hero>(this.bookUrl, httpOptions)
        .pipe(
          catchError(this.handleError('addBook', book))
        );
    }
    

    【讨论】:

      【解决方案3】:

      示例 1:

       // Example Get request
      
      
         import { HttpHeaders } from '@angular/common/http';
      
           const httpOptions = {
      
           headers: new HttpHeaders({
      
            'Content-Type':  'application/json',
      
            'Authorization':  'token'
      
           })};
      
           get_data (): Observable<any> {
      
               const Url = `${serviceurl}`;
      
               return this.http.get<any>(Url, httpOptions)
      
               .pipe(map(res => res))
      
               .catch(err => err);
            }
      

      示例 2:

         // Example Post request
      
            import { HttpHeaders } from '@angular/common/http';
      
             const httpOptions = {
      
             headers: new HttpHeaders({
      
             'Content-Type':  'application/json',
      
             'Authorization':  'token'
      
            })};
      
            Post_data (customer_name): Observable<any> {
      
             const Url = `${serviceurl}`;
      
             const body = JSON.stringify(
      
             {
      
              customer_name: customer_name 
      
               });
      
              return this.http.post<any>(Url, body, httpOptions)
      
              .pipe(map(res => res))
      
              .catch(err => err);
        }
      

      【讨论】:

        【解决方案4】:

        通过将 headers 定义为 HttpHeaders 类型的对象,您可以在 api 请求中添加 headers 你的例子:


               import { HttpHeaders } from '@angular/common/http';
        
        
              `const httpHeaders = {headers: new HttpHeaders({                   
                                            Authorization: 'Basic xzeydyt=='
                                                        })
                              };
        
              this.http.get('url',httpHeaders);`
        

        【讨论】:

          【解决方案5】:

          我有以下问题的示例代码。

           public getAll() :Observable<employee[]> {
                  const url = "http://localhost:8080/getAll";
                  const headers = new HttpHeaders({
                    Authorization: "Basic " + btoa("user:secret123")
                  });
                  return this.http.get<employee[]>(url, { headers });
                }
          

          希望它有效!

          【讨论】:

            【解决方案6】:

            您需要像这样输入标头。

            import { Http, RequestOptions, Headers } from '@angular/http';
            

            这是你获取请求的函数代码

            let headers = new Headers({Authorization: 'Basic xzeydyt=='});
            let options = new RequestOptions({ headers: headers });
            
            this.http.get(url, options)
             .map(data => {
            
             });
            

            【讨论】:

            • 我认为这些导入已被弃用
            猜你喜欢
            • 1970-01-01
            • 2017-10-31
            • 1970-01-01
            • 2013-03-08
            • 1970-01-01
            • 2017-11-20
            • 1970-01-01
            • 2020-06-14
            • 1970-01-01
            相关资源
            最近更新 更多