代码之家  ›  专栏  ›  技术社区  ›  Jeremy Thomas

Zendesk API+Angular:由于CORS[duplicate],无法接收数据

  •  0
  • Jeremy Thomas  · 技术社区  · 6 年前

    我用的是 Zendesk API HttpClient .

    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 回复  |  直到 6 年前
        1
  •  0
  •   Tarek N. Elsamni    6 年前

    你需要把你的Zendesk和angular代码放在同一个域上以避免CORS问题。

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

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

    另外,在本文之后 https://develop.zendesk.com/hc/en-us/articles/360001074268-Making-cross-origin-browser-side-API-requests 如果使用oAuth身份验证,您应该能够从客户端访问大多数API,而不会出现CORS问题!

        2
  •  0
  •   user10434643 user10434643    6 年前

    如果API请求通过OAuth验证:

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

    enter image description here