Стоит задача получить данные из форм (формы на gravity forms, wordpress, работа с ними по API), есть consumer key и secret key. При использовании обычного аякс запроса данные приходят, но не удается подружить это дело с dataTables.
Исходный код авторизации:
const oauth = OAuth({
consumer: {
key: '[ck_...]',
secret: '[cs_...]'
},
signature_method: 'HMAC-SHA1',
hash_function(base_string, key) {
return CryptoJS.HmacSHA1(base_string, key).toString(CryptoJS.enc.Base64);
}
});
const request_data = {
url: 'https://...path...',
method: 'GET'
};
const token = {
key: '[key]',
secret: '[secret]'
};
Обыкновенное получение аяксом, которое работает:
$.ajax({
url: request_data.url,
type: request_data.method,
data: oauth.authorize(request_data)
}).done(function(data) {
console.log(data);
});
В составе инициализации dataTable (не работает):
function getEndpoint() {
$.ajax({
url: request_data.url,
type: request_data.method,
data: oauth.authorize(request_data),
dataSrc: function(data) {
console.log('Test'); // На этом уровне = уже ничего не выводится в консоль
let entries = data.entries;
let modified = [];
for (var i = 0; i < entries.length; i++) {
modified.push({
'checkbox-cell': '<label class="b-checkbox checkbox"><input type="checkbox" true-value="true" value="false"> <span class="check"></span> <span class="control-label"></span></label>',
'id_tag': `<a href="javascript:void(0);" class="tablerow_ID" data-id="${entries[key].id}">${entries[key].id}</a>`,
'created_at_display': `<span class="tablerow_date">${new Intl.DateTimeFormat().format(new Date(entries[key].date_created))}</span>`,
'created_at_system': entries[key].date_created,
'name': `<span class="tablerow_name">${entries[key][21.3]} ${entries[key][21.6]}</span>`,
'address': entries[key][2],
'city': entries[key][1],
'status': '<span data-dest="status" class="tag is-light">' + getStatus(entries[key].status) + '</span>',
'owner': '<span data-dest="handler" class="tag is-custom">' + getHandler(entries[key].handler) + '</span>'
});
}
return modified;
}
});
}
$('#applications').DataTable({
ajax: getEndpoint(),
columns: [
{data: 'checkbox-cell'},
{data: 'id_tag'},
{data: {
_: 'created_at_display',
sort: 'created_at_system',
}},
{data: 'name'},
{data: 'address'},
{data: 'city'},
{data: 'status'},
{data: 'owner'},
],
...
});
Что не так?