【发布时间】:2019-10-07 05:52:04
【问题描述】:
我是 Angular 新手,面临一些 CORS 问题。我尝试了所有可能的解决方案,包括设置 CORS 标头和服务器端更改。但还是不行。
我用 'Access-Control-Allow-Origin': '*' 标题更改了服务器端作为响应。我尝试使用邮递员,它工作正常并给出标题响应。我还在发送请求时在我的 Angular 应用程序中设置了标题。但仍然给出错误。 这是给予:
从源“http://localhost:4200”访问“http://skewcommerce.test/api/user/add/”处的 XMLHttpRequest 已被 CORS 策略阻止:对预检请求的响应未通过访问控制检查:不允许重定向预检请求。
这是我发送请求的服务。
import {Injectable} from '@angular/core';
import {HttpClient} from '@angular/common/http';
import {HttpHeaders} from '@angular/common/http';
import {environment} from '../../environments/environment';
@Injectable({
providedIn: 'root'
})
export class ApiService {
baseUrl = environment.APIUrl;
token: any;
constructor(private http: HttpClient) {
}
postData(url, data) {
const httpOptions = new HttpHeaders({
'Access-Control-Allow-Origin': '*',
'Content-Type': 'application/json',
});
return this.http.post(this.baseUrl + url + '/', data, {headers : httpOptions});
}
}
请帮助我知道我做错了什么。 :(
【问题讨论】:
-
需要在服务器端设置,这里查看stackoverflow.com/questions/56133333/…
-
我已经这样做了..我测试了 api,它给了我这些标题作为响应。
-
你能分享一张你的响应标题的图片吗?
-
Access-Control-Allow-Origin →* Access-Control-Allow-Credentials →true Cache-Control →no-cache, private Access-Control-Allow-Methods →GET, POST, PUT, DELETE , 选项 Access-Control-Allow-Headers →X-Requested-With, X-Auth-Token, Content-Type, Origin, Cache-Control, Pragma, Authorization, Accept, Accept-Encoding, X-Login-Origin, responseType X -RateLimit-Limit →60 X-RateLimit-Remaining →59
-
您使用的是虚拟主机吗?还是一个域?