У меня проблемы с выполнением Руководства по API с использованием AJAX. Я успешно получил токен сеанса из API входа в систему, поскольку токен сеанса необходим для отправки запросов к данным GET / POST.
Код для получения токена сеанса:
var sessionToken = null;
$.ajax({
url: '<API-URL>/1/json/user_login/',
data: {
'login_name' : 'USERNAME',
'password' : 'PASSWORD'
},
type: 'GET',
dataType: 'json',
success: function(data) {
sessionToken = data.response.properties.session_token;
$("#result").text("Got the token: " + sessionToken);
},
error: function(err) { console.log(err); },
beforeSend: setHeader
});
function setHeader(xhr) {
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
}
При успешном завершении мы получаем токен сеанса: D67ABD0454EB49508EAB343EE11191CB4389255465
{response: {…}}
response:
properties:
action_name: "user_login"
data: [{…}]
action_value: "0"
description: ""
session_token: "D67ABD0454EB49508EAB343EE11191CB4389255465"
__proto__: Object
__proto__: Object
__proto__: Object
Теперь, когда у меня есть действующий токен сеанса, теперь я могу делать запросы на получение данных. Я пытаюсь получить данные драйвера, используя следующий код:
$.ajax({
url: '<API-URL>/1/json/api_get_data/',
data: {
'license_nmbr' : vrn,
'session_token' : sessionToken
},
type: 'POST',
//dataType: 'json',
success: function(data) {
//var obj = JSON.parse(data);
console.log(data);
},
error: function(err) { console.log(err); },
beforeSend: setHeader
});
Согласно документации, мне нужно использовать POST вместо GET, чтобы получить данные об автомобиле в ответе и передать маркер сеанса в качестве параметра:
![Documentation](https://i.stack.imgur.com/6Z3wa.png)
К сожалению, кажется, что возвращаются пустые данные при использовании GET и Permission denied при использовании POST. Я попытался отправить параметры в виде массива, как в документации, но это также не удается. Я попытался передать маркер сеанса как авторизацию, но все равно не получил ответа.
Единственная помощь, которую я получил от группы поддержки API, была: «POST не может быть с запросом параметра в конечной точке».
Что я делаю не так?
Любая помощь приветствуется. Спасибо!