У меня есть приложение Laravel, в котором блэйд-вид вызывает бэкэнд контроллера с использованием Jquery ajaxQ.У лезвия есть цикл массива, где каждый элемент делает вызов.Мне нужно поставить в очередь каждый элемент вызова ajax, то есть текущий вызов ajax должен быть завершен до того, как будет сделан следующий вызов Ajax.
В моем файле route.php у меня есть следующее:
$this->group(['middleware' => ['auth', 'profile']], function () {
#get/post here
$this->post('ajaxcall', 'SomeController@ajaxcall');
});
На моем блэйде просмотра вот как я делаю свой вызов AjAXQ:
@push('script')
<script src="/js/jquery.ajaxq.js"></script>
<script>
function genopts(){
return {
type: 'POST',
url: '/ajaxcall',
data: data_post,
cache: false,
success: function(){
//some code here
},
error: function(){
//some code
}
dataType: 'json',
async:false
}
}
var csrf_token = $( "input[name*='_token']" ).val();
var arrID = [1, 2, 3, 4, 5];
arrID.forEach(function(id){
var data_post = {};
data_post.id = id;
data_post['_token'] = csrf_token;
$.ajaxq (id, genopts);
});
</script>
@endpush
AjaxQ возвращает ошибку 404.Ранее я использовал $ .ajax (), но, поскольку это асинхронно, я не мог ставить в очередь каждый вызов ajax в его последовательном порядке.