Друзья, я совсем отчаялся: не могу понять как правильно написать JS скрипт, чтобы получить данные с API Gumroad.
В
документации API сказано, что они отвечают JSON'ом, однако я не могу использовать
JSON запрос, так-как это приводит к ошибке
Cross-Origin Request Blocked:
The Same Origin Policy disallows reading the remote resource
at https://api.gumroad.com/v2/products.
(Reason: CORS header ‘Access-Control-Allow-Origin’ missing).
хотя я подставлял этот хедер в заголовок
в предыдущих попытках.
На сколько я понял, в моём случае, когда идёт запрос с непредсказуемого сайта использовать JSON не получится, однако они отвечают именно с помощью JSON.
Поэтому я использую
JSON-P, тогда я получаю ответ, но не могу к нему обратиться в коде.
Firefox при этом выдаёт ошибку:
“SyntaxError: missing ; before statement",
а хром:
"Refused to execute script from 'мой запрос' because its MIME type ('application/json') is not executable, and strict MIME type checking is enabled."
Я перерыл весь Stackexchange и не смог найти рабочий совет.
Там же есть мой вопрос
Не знаю что и делать, помогите пожалуйста.
Какие могут быть варианты?
Спасибо!
Код в JS
(токен в примере рабочий)
Версия jQuery 1.12.4
Вариант 1
jQuery.ajax({
dataType: 'jsonp',
url: 'https://api.gumroad.com/v2/products',
data: {
'access_token': '676234257caeb63ca7683c39d14e0091387a1a36af0c2135f989d0fd84ffc0c5'
},
success: function(data){
console.log(data);
},
error: function(d){
console.log(d);
}
});
Вариант 2
jQuery(document).ready(function() {
var url = 'https://api.gumroad.com/v2/products/';
url += '?method=getQuote';
url += '&format=jsonp';
url += '&lang=en&';
url += 'jsonp=myJsonMethod';
url += '&?callback=?';
url += '&access_token=676234257caeb63ca7683c39d14e0091387a1a36af0c2135f989d0fd84ffc0c5';
jQuery.getJSON(url);
});
function myJsonMethod(response){
console.log (response);
}
Вариант 3
function jsonp(url) {
var head = document.head;
var script = document.createElement("script");
script.setAttribute("src", url);
head.appendChild(script);
head.removeChild(script);
}
jsonp("https://api.gumroad.com/v2/products?callback=jsonpCallback&access_token=676234257caeb63ca7683c39d14e0091387a1a36af0c2135f989d0fd84ffc0c5");
function jsonpCallback(data) {
document.getElementById("response").textContent = JSON.stringify(data);
}
Запросhttps://api.gumroad.com/v2/products?callback=jQuery112409655243732650752_1495261525390&access_token=676234257caeb63ca7683c39d14e0091387a1a36af0c2135f989d0fd84ffc0c5&_=1495261525391
Заголовки