Я вызываю API отдыха, предоставленный 2Checkout. Вот мой код
$.ajax({
type: "GET",
dataType: "jsonp",
contentType: "application/json",
accepts: {json:"application/json"},
url: "https://api.2checkout.com/rest/5.0/subscriptions/9C77B952C2/",
success: function(data){
},
error: function(){
}
});
Когда я выполняю этот код, я получаю ошибку: net::ERR_ABORTED 415
Когда я пытаюсь открыть URL в новой вкладке, я получаю:
{"error_code":"INVALID_CONTENT_TYPE","message":"The current resource can not be served as [text/html, application/xhtml+xml, application/xml;q=0.9, image/webp, image/apng, */*;q=0.8] content-types"}
Итак, исходя из того, что я решил, мне нужно указать правильный тип контента, который будет принят сервером, поэтому я добавил:
accepts: {json:"application/json"},
2Поддержка подтверждения сообщает мне "when using REST API make sure that http header also contains “Accept: application/json”. This is mandatory for the call to work and for retrieving info."
Но их единственный пример - это сырой javascript, а не jQuery. Пример JavaScript выглядит так:
var request = new XMLHttpRequest();
request.open('GET', 'https://api.2checkout.com/rest/5.0/subscriptions/{SubscriptionReference}/');
request.setRequestHeader('Content-Type', 'application/json');
request.setRequestHeader('Accept', 'application/json');
request.onreadystatechange = function () {
if (this.readyState === 4) {
console.log('Status:', this.status);
console.log('Headers:', this.getAllResponseHeaders());
console.log('Body:', this.responseText);
}
};
request.send();
Так что я хотел бы сделать эту работу в jQuery, если это возможно, и я чувствую, что это не должно быть так сложно, но я продолжаю получать ошибку.
К сожалению, документация jquery не очень специфична и содержит только пример нестандартного типа, который, я думаю, не будет. Также в нем говорится, что значение по умолчанию для «accept» зависит от типа данных, который в моем случае является jsonp, поэтому я предположил бы, что он автоматически принимает application / json, но это не так.
В чем тут подвох?