我在Postman中使用此API调用,但是当我将代码复制到我的JS代码中时,我收到以下错误:
XMLHttpRequest无法加载https://api.yelp.com/v3/businesses/search?term=restaurant&latitude=40.82783908257346&longitude=-74.10162448883057。
对预检请求的响应没有通过访问控制检查:否'访问控制 - 允许 - 来源'标头出现在请求的资源上。
起源' null'因此不允许访问。
响应的HTTP状态代码为500。
我的AJAX呼叫(为了安全而改变了承载):
library(purrr)
params_list <- list(list("mpg","mpg","mpg"),
list("drat","wt","qsec"))
pmap(params_list, render_report)
根据Yelp文档 - Yelp不支持CORS - 所以CORS不是问题。
答案 0 :(得分:0)
我能够使用Fetch在客户端没有任何问题的情况下实现它。我怀疑它可能是你的标题之一。
fetch('https://api.yelp.com/oauth2/token?client_id=<CLIENT_ID>&client_secret=<CLIENT_SECRET>', {
method: 'POST',
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
},
body: JSON.stringify({
grant_type: 'client_credentials',
})
})
.then((res) => res.json())
.then((resJSON) => {
this.setState({ access_token: resJSON.access_token });
console.log(resJSON)
})
.then(() => {
fetch('https://api.yelp.com/v3/businesses/search?location=12345', {
method: 'GET',
headers: {
'authorization': 'Bearer ' + this.state.access_token
}
})
.then((res) => res.json())
.then((resJSON) => {
console.log('resJSON', resJSON)
})
})
.catch((err) => {
console.log('err', err);
})