localhost url的Angular 4 Access-Control-Allow-Origin错误

时间:2018-04-23 08:28:31

标签: json angular localhost

我倾向于Angular,尝试使用HTTP获取localhost url上的json文件http://api.test/work.but我得到错误:

无法加载http://api.test/work:否'访问控制 - 允许 - 来源'标头出现在请求的资源上。起源' http://localhost:4200'因此不允许访问。

顺便说一句,我使用laravel来生成json

3 个答案:

答案 0 :(得分:0)

这意味着,http://api.test/work.but不允许跨源请求。如果此链接由您托管,则必须允许跨源请求。  在您的回复标题中,您必须发送:     Access-Control-Allow-Origin:*

这意味着,对您的服务器的任何正文请求。

如果要允许访问特定域,可以指定它们。

在此处阅读更多abouut CORShttps://stackoverflow.com/a/29928301/5335354

答案 1 :(得分:0)

我遇到了同样的错误; “无法加载http://web-api_link:所请求的资源上没有'Access-Control-Allow-Origin'标头。因此,不允许访问源'http://localhost:4200'。”。我已经在Chrome浏览器中安装了CORS。开了我单击它并检查了“启用跨域资源共享”。我禁用了它,然后再次启用了它。它为我工作!

答案 2 :(得分:-1)



private callServiceGet(url: string, wC?: boolean): Promise<any> {
    return this.http.get<any>(url, { observe: 'response', withCredentials: wC })
      .catch(err => [ err ])
      .map(data => ({ status: data.status, data: data.body }))
      .toPromise();
  }
&#13;
&#13;
&#13;

使用wC,您也拥有允许localhost的凭据。它只是一个布尔值,所以如果你想要一个完整的访问权限,就把它设置为true。

例如,您可以像这样使用它:

&#13;
&#13;
getJSON(): Promise<any> {
    return this.callServiceGet(`http://api.test/work`, true);
  }
&#13;
&#13;
&#13;