Я пытаюсь вызвать Yelp Fusion API с помощью AJAX, но получаю следующую ошибку: Может ли кто-нибудь помочь мне разобраться, что здесь происходит?
api.yelp.com/v3/:1 Не удалось загрузить ресурс: сервер ответил статусом 403 () index.html: 1 Доступ к XMLHttpRequest по адресу 'https://api.yelp.com/v3/' из источника 'null' был заблокирован политикой CORS: ответ на предварительный запрос не проходит проверку контроля доступа: заголовок 'Access-Control-Allow-Origin' отсутствует на запрашиваемый ресурс.
Вот код, который я использую:
var queryURL = "https://api.yelp.com/v3/";
var apiKey = "my key"
$.ajax({
url: queryURL,
method: "GET",
headers: {
"accept": "application/json",
"Access-Control-Allow-Origin":"*",
"Authorization": `Bearer ${apiKey}`
}
}).then(function(res) {
var results = res.data
console.info(results);
});
Привет, Хактан, думаю, лучше поздно, чем никогда. Но я понял, что не могу использовать Yelp на стороне клиента. Спасибо за вашу помощь!





Попробуйте использовать прокси CORSAnywhere, вставьте ключ в приведенный ниже фрагмент и попробуйте:
// JavaScript Document
var queryURL = "https://cors-anywhere.herokuapp.com/https://api.yelp.com/v3/";
var apiKey = "my key";
$.ajax({
url: queryURL,
method: "GET",
headers: {
"accept": "application/json",
"x-requested-with": "xmlhttprequest",
"Access-Control-Allow-Origin":"*",
"Authorization": `Bearer ${apiKey}`
},
success: function(result){
console.info(result);
}
});
Привет, @cody, вы уверены, что можете использовать Yelp API на стороне клиента? Потому что, очевидно, вы раскрываете свои учетные данные API, и это должно противоречить их условиям.