Access-Control-Allow-Headers 在飞行响应中不允许请求标头字段 Content-Type

Posted

技术标签:

【中文标题】Access-Control-Allow-Headers 在飞行响应中不允许请求标头字段 Content-Type【英文标题】:Request header field Content-Type is not allowed by Access-Control-Allow-Headers in flight response 【发布时间】:2018-08-26 06:14:14 【问题描述】:

我正在使用 Laravel(Restful API)开发一个 Angular 4 应用程序。我已经用 Postman 测试了 API。它工作正常,但是当我从 Angular 4 调用 API 时出现此错误:

import  Injectable  from '@angular/core';
import  Headers, Http  from '@angular/http';
import  User  from '../models/user';
import 'rxjs/add/operator/toPromise';

@Injectable()
export class AuthService 
 private BASE_URL: string = 'http://localhost/fmfb_hr/public/api';
  private headers: Headers = new Headers('Content-Type': 'application/json');
 constructor(private http: Http) 
login(user): Promise<any> 
let url: string = `$this.BASE_URL/login`;
return this.http.post(url, user, headers: this.headers).toPromise();




【问题讨论】:

可能是 CORS 问题。 如何用 laravel 解决 创建一个 CORS 中间件。更多详情请见***.com/questions/29045413/… 我已经阅读了这篇文章并尝试过,但它不起作用 【参考方案1】:

试试这段代码在一个请求中添加两个标头,我希望这可行

import  Injectable  from '@angular/core';
import  Headers, Http  from '@angular/http';
import  User  from '../models/user';
import 'rxjs/add/operator/toPromise';

@Injectable()
export class AuthService 
    private BASE_URL: string = 'http://localhost/fmfb_hr/public/api';
    private headers: Headers = new Headers();
    constructor(private http: Http) 
    login(user): Promise<any> 
        let url: string = `$this.BASE_URL/login`;
        this.headers.append('Content-Type','application/x-www-form-urlencoded');
        this.headers.append('Content-Type','application/json');
        return this.http.post(url, user, headers: this.headers).toPromise();
    

【讨论】:

【参考方案2】:

将这三行添加到 CORSify 您的服务器。如果您使用 Apache 作为 Web 服务器,请将这些行添加到您的 .htaccess 文件中:

Header set Access-Control-Allow-Origin "*"
Header set Access-Control-Allow-Methods "GET,PUT,POST,DELETE"
Header set Access-Control-Allow-Headers "Content-Type, Authorization"

【讨论】:

以上是关于Access-Control-Allow-Headers 在飞行响应中不允许请求标头字段 Content-Type的主要内容,如果未能解决你的问题,请参考以下文章