angular - 在 Angular 4 中带有 header 的 Http 请求

标签 angular typescript httprequest

我目前正在尝试从后端获取 JSON 响应,但是当我执行 GET 请求时,出现以下错误(参见第一张图片)。 预检响应具有无效的 HTTP 状态代码 401

error screenshot

但是我确定后端运行良好并且 url 和 header ( token )是正确的,因为 postman 确实返回了想要的结果(见第二张图片)。

enter image description here

这是我使用 httpclient 和 httpclientmodule(在 appmodule.ts 中)的代码。我还添加了一个 chrome 插件(allow-control-allow-origin),它解决了之前的 allow access-control-allow-origin 错误。所以我个人认为要么是我的header有问题,要么是和http请求有冲突。

import { Component, OnInit } from '@angular/core';
import { HttpClient, HttpHeaders } from '@angular/common/http';



@Component({
  selector: 'app-process-category',
  templateUrl: './process-category.component.html',
  styleUrls: ['./process-category.component.css']
})
export class ProcessCategoryComponent implements OnInit {

  results: string[];

  constructor(private http: HttpClient) {
  }


  ngOnInit(): void {

    this.http.get('http://localhost:8084/LOGwearServer/Database/main/abstract?typeOne=PROCESSCATEGORIES&typeTwo=PROCESSCATEGORIES',
      {
        headers: new HttpHeaders().set('token', '994847565472878394039283578235')
      })
      .subscribe(data => {
        console.log(data);
      });
  }

}

最佳答案

我认为您在发送 token 时错过了添加单词 Bearer 例如尝试像这样传递

headers: new HttpHeaders().set('token', 'Bearer 994847565472878394039283578235')

我遇到了同样的问题,我通过传递这个词解决了它。

关于angular - 在 Angular 4 中带有 header 的 Http 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46933731/

相关文章:

Angular 2 : ng2-dragula - nested dragula

TypeScript,扩展全局 Object<K, V> 接口(interface)

node.js - 如何在 Node 中访问 Lambda 中的/tmp 文件夹?

javascript - 如何交换json

Angular2 防止在有任何待处理请求时排队 http 请求

angular - 在 AOT 编译之前 Lint Angular 2、4、5 模板 html 文件的最佳方法是什么

java - 将 NameValuePair 分隔符从 '=' 更改为 ':'

javascript - throttle 功能打破了我的输入实时搜索

css - 每个媒体查询都会引发 http 请求吗?

logging - RequestLogger 未拦截所有 http 请求