请求标题字段Access-Control-Allow-Headers在航班响应中不允许使用Content-Type

时间:2018-03-17 06:39:14

标签: php angular laravel laravel-5 cors

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

enter image description here

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();
}


}

2 个答案:

答案 0 :(得分:4)

将这三行添加到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"

答案 1 :(得分: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();
 }
 }
相关问题