Я работаю с библиотекой DataTables
, где мне нужно делать последовательные AJAX
запросы. Проблема в том, что функция AJAX
внутри второй функции Success
не вызывается. Вот весь код
$(document).ready(()=>{
$.ajax({
url: 'http://localhost:3000/api/post/getUserData',
method: 'post',
dataType: 'json',
data: {
"email": window.email,
"token": window.token
},
success: function(data){ // <-----------------------FIRST SUCCESS FUNCTION
let table = $('#datatable').dataTable({
data: data,
"autoWidth": true,
columns: [
{'data': 'id'},
{'data': 'main'},
{'data': 'shrinked'},
{'data': 'clicks'},
{"data": "id",
"render": function ( data, type, row, meta ) {
return `<button data-id=${data} onclick="disableThis(event)" class="btn btn-warning">Disable</button>`
}
},
{"data": "id",
"render": function ( data, type, row, meta ) {
return `<button data-id=${data} onclick="deleteThis(event)" class="btn btn-danger">Delete</button>`
}
}
]
})
//------------------------------Function to add new Row inside Datatable when Form is submmitted
$(function () {
$('#form').bind('submit', function (event) {
event.preventDefault();
$.ajax({
url: 'http://localhost:3000/userShrink',
type: 'post',
datatype: 'json',
data: {
fullUrl: $('#Url').val(),
email: window.email,
token: window.token
},
success: function () { // <-----------------SECOND SUCCESS FUNCTION (THIS ONE IS NOT EXECUTING)
$.ajax({
url: 'http://localhost:3000/api/post/getUserData',
method: 'post',
dataType: 'json',
data: {
"email": window.email,
"token": window.token
},
success: function(data2){
console.log(data2)
}
})
}
});
});
});
}
})
})
Теперь я проверил Network
Профиль моего веб-приложения в браузере,
При загрузке страницы этот блок выполняется, таким образом предоставляя данные для DataTables
Библиотека, которая затем отображает таблицу.
$(document).ready(()=>{
$.ajax({
url: 'http://localhost:3000/api/post/getUserData',
method: 'post',
dataType: 'json',
data: {
"email": window.email,
"token": window.token
},
success: function(data){ // <-----------------------FIRST SUCCESS FUNCTION
let table = $('#datatable').dataTable({
data: data,
"autoWidth": true,
columns: [
{'data': 'id'},
{'data': 'main'},
{'data': 'shrinked'},
{'data': 'clicks'},
{"data": "id",
"render": function ( data, type, row, meta ) {
return `<button data-id=${data} onclick="disableThis(event)" class="btn btn-warning">Disable</button>`
}
},
{"data": "id",
"render": function ( data, type, row, meta ) {
return `<button data-id=${data} onclick="deleteThis(event)" class="btn btn-danger">Delete</button>`
}
}
]
})
После этого, если form
отправляется, оно запускает это событие, которое затем POST
успешно сохраняет данные в БД.
//------------------------------Function to add new Row inside Datatable when Form is submmitted
$(function () {
$('#form').bind('submit', function (event) {
event.preventDefault();
$.ajax({
url: 'http://localhost:3000/userShrink',
type: 'post',
datatype: 'json',
data: {
fullUrl: $('#Url').val(),
email: window.email,
token: window.token
},
Что-то go неправильно, когда вторая функция success
выполняется или, скорее, не выполняется, причина, по которой мне нужна эта вторая функция успеха, заключается в загрузке вновь отправленных данных в DataTables
.
success: function () { // <-----------------SECOND SUCCESS FUNCTION (THIS ONE IS NOT EXECUTING)
$.ajax({
url: 'http://localhost:3000/api/post/getUserData',
method: 'post',
dataType: 'json',
data: {
"email": window.email,
"token": window.token
},
success: function(data2){
console.log(data2)
}
})
}
В чем может быть причина такого поведения? Спасибо.