[英]Angular 8: No 'Access-Control-Allow-Origin' header is present on the requested resource
[英]CORS : No 'Access-Control-Allow-Origin' header is present Angular 2
我正在嘗試實現進行PATCH Http調用的服務,這是出現此錯誤的唯一方法“沒有'Access-Control-Allow-Origin'標頭存在”,當我在chrome上檢查開發工具時,我看到了一個OPTION而不是PATCH,這是我的方法:
pauseTasksJobs(id, task){
//this.headers.append('Access-Control-Allow-Origin', 'application/json');
//this.headers.append('Accept', 'application/json');
var url = this.home+ "tasks/" +task+ "/jobs/" + id ;
var body = "{ \" status \" : \"Pause\" }";
//var body = "{ status : Pause }";
console.log("this is my body: "+body)
var result;
this._http.patch(url,body,this.requestOption).
map(res => res.json())
.subscribe(res => {
result = res;
console.log("this is my result: "+result);
}, error=> console.error('Error: ' + error),()=>console.log("tasks mis en pause"));
}
在我的構造函數中,我像這樣設置標題內容:
headers = new Headers();
requestOption = new RequestOptions({ headers: this.headers });
private actionV: string;
constructor(private _http: Http) {
this.headers.append('Content-Type', 'application/json');
this.headers.append('Accept', 'application/json');
this.headers.append('Authorization', 'Basic ' + cookieValue);
}
首先,將您的標頭添加到您的補丁請求中。
像這樣:
headers.append('Content-Type', 'application/json');
headers.append('Content-Type', 'Access-Control-Allow-Headers');
並且不要忘記將標頭添加到您的http請求中,如下所示:
this.http
.patch(url, JSON.stringify(payload), { headers: headers })
...
其次,在您的tomcat配置中,您需要配置:
<param-name>cors.allowOrigin</param-name>
<param-value>*</param-value>
</init-param>
<init-param>
<param-name>cors.supportedMethods</param-name>
<param-value>GET, POST, OPTIONS, PATCH</param-value>
</init-param>
<init-param>
<param-name>cors.supportedHeaders</param-name>
<param-value>Accept, Origin, X-Requested-With, Content-Type, Last-Modified</param-value>
</init-param>
<init-param>
<param-name>cors.supportsCredentials</param-name>
<param-value>true</param-value>
</init-param>
在PATCH上,Angular首先發送OPTIONS,然后為什么我們需要在CORS中允許OPTIONS。
希望能幫助到你 ?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.