dukenuk
@dukenuk
UI/UX designer, UI artist

Как подключиться к Gumroad API с помощтю AJAX?

Друзья, я совсем отчаялся: не могу понять как правильно написать 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


Заголовки
RVFvG.png
  • Вопрос задан
  • 237 просмотров
Решения вопроса 1
dukenuk
@dukenuk Автор вопроса
UI/UX designer, UI artist
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы