【发布时间】:2017-06-12 10:48:59
【问题描述】:
我正在用 Go 开发一个 API,在 Angular(没有 AngularJS)中开发我的前端,但是当我在 Angular 中从我的 Web 应用程序调用我的 API 时,我在后端看不到我的标头,在特殊情况下是我的授权标头,因为我的 API 具有基于 JWT 的身份验证。
另外我想提一下,我正在使用 Postman 和 Go Request 客户端来测试我的应用程序,并且我的标头在我的 API 中传递而没有问题。
下面附上我的后端的 CORS 和来自我的前端的 API 调用。
我的后台:
func Cors() gin.HandlerFunc {
log.Println("CORS Middleware")
return func(c *gin.Context) {
c.Writer.Header().Add("Access-Control-Allow-Origin", "*")
c.Next()
}
}
我的前端:
getData() {
const auth = `Bearer ${this.token}`;
const headers = new Headers({
'Access-Control-Allow-Origin': '*',
'Accept': 'application/json',
'Authorization': auth,
});
const options = new RequestOptions(headers);
console.log(headers); //Here I can see
const products = this.http.get('localhost:8000/api/products', options )
.subscribe((response: Response) => {
this.data = response.json();
});
return products;
}
感谢和抱歉我的英语,我认为我的 CORS 会导致问题。
【问题讨论】:
-
这可能不相关,但您需要删除“授权”末尾的逗号:auth,