访问控制允许Angular 2 http服务中的Origin问题

时间:2017-06-02 07:31:04

标签: javascript angular cors angular-services angular-http

我面临从laravel服务器获取数据的问题。

这是客户端代码:

private surveysUrl = 
'http://107.170.59.79/services/public/api/v1/countries';
private headers = new Headers({'Content-Type': 'application/json'});

constructor(private http: Http) { }

getSurveys(): Promise<Survey[]> {
return this.http.get(this.surveysUrl)
   .toPromise()
   .then(response => response.json() as Survey[])
   .catch(this.handleError);
}

但我收到的错误是:

XMLHttpRequest无法加载    {{link set in variable&#34; surveysUrl&#34;}}。 &#39;访问控制 -    允许来源&#39;标头有一个值{{{Some random link}}&#39;那不是    等于提供的原产地。起源&#39; http://localhost:4200&#39;因此    不允许访问。

如何解决此错误?

PS:我不允许发布两个以上的链接,因此我不得不从错误消息中删除链接。我已将其替换为{{}}以使其可读。

1 个答案:

答案 0 :(得分:2)

如果您使用的是apache,那么您需要允许原始访问,即

Header set Access-Control-Allow-Origin "*"

在.htaccess文件中包含此内容。