Zendesk API + Angular:由于CORS不能接收数据

时间:2018-10-02 21:38:09

标签: angular cors zendesk zendesk-api

我正在使用Zendesk API并且能够发出发布请求(即使响应告诉我有错误),但是我无法使用Angular 4应用和HttpClient发出GET请求。 / p>

searchZendesk( query : string ) {
    console.log(query)

    this.search( query ).subscribe(
      (data) => console.log(data),
      (err) => console.log(err.error),
      () => console.log("complete")
    )
}

search( query : string ) {
    let headers = this.setOptions()
    let url = `${ this.baseUrl }/search.json?query=${ query }`

    return this.http.get(`${ this.baseUrl }/search.json?query=${ query }`, { headers: headers })
  }

setOptions() {
    let key = this.setKey()
    let headers = new HttpHeaders({
      'Authorization': key,
    })

    return headers
}

致电searchZendesk()后,我收到以下错误消息:

No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:8100' is therefore not allowed access.

2 个答案:

答案 0 :(得分:1)

您需要将Zendesk和角度代码托管在同一域中,以避免发生CORS问题。

您对如何部署js代码(角度应用程序)拥有完全控制权,所以我留给您。

要在同一域上托管zendesk,请按照本文进行操作:

https://support.zendesk.com/hc/en-us/articles/203664356-Changing-the-address-of-your-Help-Center-subdomain-host-mapping-

-

此外,如果您使用了oAuth身份验证,那么按照本文https://develop.zendesk.com/hc/en-us/articles/360001074268-Making-cross-origin-browser-side-API-requests,您应该可以从客户端访问大多数API,而不会出现CORS问题!

答案 1 :(得分:0)

  

如果API请求已通过OAuth认证:

Zendesk在响应中包含一个特殊的"Access-Control-Allow-Origin" CORS标头。标头的值为“ *”,该值允许来自任何来源的页面的请求。标题基本上是授予浏览器访问Zendesk域中资源的权限。

enter image description here