2016-06-08 2 views
0

Я пытаюсь добавить ajax в свой проект laravel 5.2 в течение нескольких дней, но я не смог. Мне нужна помощь/ссылка/учебник от кого-либо. Обратите внимание, что я много раз искал много раз и следил за указанным процессом, но ничего не произошло.Ajax in Laravel 5.2 не работает

Вот часть моего кода: Ajax:

$('#contact-sort').on('click', function() { 

     //$this = $(this); 

     // alert($this.data('id')); 

     $.ajax({ 
      method: 'post', 
      url: '/abc', 
      data: {id: 'id'}, 
      success: function (msg) { 
       alert(msg); 
      } 
     }) 

    }) 

Маршрут:

Route::post('/abc', function (Request $request) { 
    return $request->id; 
}); 

Вот образ моей сетевой панели

Screenshot of Network panel at Firefox

+1

Попытка: '$ request-> all();' и показать вывод – GONG

+0

Я изменил id для всех(), но пока ничего не произошло. –

+0

@GONG правильно, вы можете получить доступ к запросам от AJAX-запросов, используя $ request-> input ('id') '(EDIT)', и если вам нужно увидеть ваш результат, используйте 'return response ($ request-> input (' id ')); ' –

ответ

1

Это может быть полезно для открытия Google Chrome и отслеживания сетевого запроса.

Что-то, что нужно учитывать при использовании Laravel и AJAX, вам необходимо передать _token с запросом AJAX, если вы используете либо промежуточное программное обеспечение auth10, либо web.

$.ajax({ 
    method: 'post', 
    url: '/abc', 
    data: { 
    id: 'id', 
    _token: "{{ csrf_token() }}" 
    }, 
    success: function (msg) { 
    alert(msg); 
    } 
}); 

Просьба скриншот вашего запроса на сетевую панель, это будет очень полезно!

+0

Вот ответ запроса Запрашиваемый URL-адрес не был найден на этом сервере. Ссылка на referring page представляется неправильной или устаревшей. Пожалуйста, сообщите об этом автору that page об ошибке. –

0

Это потому, что:

В Laravel:

Я скопировал файл .htaccess из папки в корневой папке и переименовал файл server.php в index.php. Таким образом, моя общая папка - один шаг вверх. Следовательно, url: '/ abc' не найден на сервере. Я делаю url одним шагом вверх, добавляя два периода перед косой чертой, например url: «../ abc» и проблема решена.

0

В Laravel 5.2 все HTTP-запросы проходят через веб-промежуточное программное обеспечение, поэтому вам необходимо передать токен CSRF в заголовок Ajax.

Поместите на файл JS, где вы выполняете вашего АЯКС

$.ajaxSetup({ 
    headers: { 
    'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') 
    } 
}); 

и это один идет к вашей главной странице или нужной странице HTML/лопастной (положить его между тегами головы)

<meta name="csrf-token" content="{{ csrf_token() }}"> 

Более подробную информацию можно найти здесь https://laravel.com/docs/master/routing#csrf-protection