[英]React.js + PHP/Apache: Request header field content-type is not allowed by Access-Control-Allow-Headers in preflight response
[英]Request header field Content-Type is not allowed by Access-Control-Allow-Headers in flight response
我正在使用 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();
}
}
將這三行添加到 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"
試試這個代碼在一個請求中添加兩個標頭,我希望這有效
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();
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.