angular - Angular "strict-origin-when-cross-origin"错误是什么意思?

标签 angular api httpclient influxdb referrer-policy

我想从我的应用访问一个 API。 curl 请求是:

curl --request POST   https://...    --header 'Authorization: Token ...'   --header 'Accept: application/csv'   --header 'Content-type: application/vnd.flux'   --data '...'

它可以工作并从 InfluxDB 实例返回数据。问题是当我在 Angular 中尝试所有操作时:我设置了一个正确重定向请求的代理(我在终端中检查了这个)。但是在网络浏览器(Firefox Developer Edition)中我得到

POSThttp://localhost:4200/api/
[HTTP/1.1 401 Unauthorized 204ms].

Status 401
Unauthorized
Version HTTP/1.1
Übertragen 350 B (55 B Größe)
Referrer Policy strict-origin-when-cross-origin

api URL 是https 地址,http 也会出现同样的错误。生产应用中也会发生同样的情况。

代理配置文件

{
"/api/*": {
"target": "...",
"secure": false,
"logLevel": "debug",
"changeOrigin": true
}
}

终端确认:

[HPM] POST /api/ -> correct url

组件中的请求:

apiurl = '/api/';
data = JSON.stringify('request');
headers:HttpHeaders = new HttpHeaders();;

constructor(private route: ActivatedRoute,
private httpClient: HttpClient) {
this.headers.set('Authorization', 'Token token');
this.headers.set('Content-type', 'application/vnd.flux');
}

getConfig() {
return this.httpClient.request<any>('post',`${this.apiurl}`,
    {
      body: this.data,
      headers: this.headers
    }
 );
}


ngOnInit(): void {

this.getConfig()
.pipe(first())
.subscribe(
 data => {
   console.log(data);
 },
 error => {
   console.log(error);
 });
  }

非常感谢您的想法,谢谢!

最佳答案

更改您的代理配置。

来自这里:

{
 "/api/*": {
   "target": "...",
   "secure": false,
   "logLevel": "debug",
   "changeOrigin": true
 }
}

对此:

{
 "/api/*": {
   "target": "...",
   "secure": false,
   "logLevel": "debug",
   "changeOrigin": true,
   "pathRewrite": { "^/api": "" }
 }
}

你错过了 "pathRewrite": { "^/api": ""}

关于angular - Angular "strict-origin-when-cross-origin"错误是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67562098/

相关文章:

php - centos7上laravel和php上传问题

javascript - angularjs ng-repeat cascading Dropdown不更新

c++ - 使用QT C++从json中获取多个数据

java - Apache HttpClient 摘要身份验证失败

java - Apache HttpClient HttpGet url 带冒号

java - 在 URL 中使用带有非法字符的 HttpGet

Angular2 PrimeNG 条件行格式化

angular - 使用 Angular2/Ionic2 标记输入

java.lang.IllegalArgumentException : FormUrlEncoded can only be specified on HTTP methods with request body (e. g., @POST)

angular - MatDialog Angular 开放组件?