Вызов Ajax не выполняет вызовы на сервер Laravel
Я пытаюсь сделать запрос с помощью сторонней программы, но она не работает. Может ли кто-нибудь сказать мне, что я делаю не так? Ответ просто не отправляется. Я попытался упорядочить зависимости, разместив скрипты вверху, а код после формы, но он просто не выполняет вызовы через XHR в консоли.
Контроллер:
class UserController extends Controller
{
public function index(Request $request)
{
$search = request('name');
return User::where('name', 'LIKE', "$search%")
->take(5)
->pluck('name');
}
}
Маршрут:
Route::get('/api/users', 'Api\UserController@index');
Сценарий:
<script>
$('#body').atwho({
at: "@",
delay: 500,
callbacks: {
remoteFilter: function (query, callback) {
//$.getJSON('/api/users', { name: query }, function (usernames) {
// console.log('hey');
// callback(usernames);
//});
$.ajax({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
},
url: '/api/users',
type: 'GET',
dataType: 'json',
data: {
name: query,
_token: {{csrf_token()}}
},
success: function (usernames) {
callback(usernames);
console.log('hey');
},
error: function () {
console.log('error');
}
});
}
}
});
</script>
Здесь отлично работает
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="/css/jquery.atwho.css">
</head>
<body>
<textarea type="" id="inputor"></textarea>
</body>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.0/jquery.js"></script>
<script src="/js/jquery.caret.js"></script>
<script src="/js/jquery.atwho.js"></script>
<script>
$('#inputor').atwho({
at:"@",
data: ['Peter', 'Tom', 'Anne']
});
</script>
</html>
2 ответа
Мне пришлось удалить "defer" из app.js в файле app.blade.php.
Вы должны использовать url
выглядят так.
url: "{{url('')}}/api/users,
type: 'POST',
И ваш маршрут должен быть помещен в route\api.php
. И ваш маршрут должен выглядеть так
Route::post('/users', 'ApiController@index');
И в своем ApiController вы пишете этот код
class ApiController extends Controller{
public function index(Request $request){
$search = request('name');
return User::where('name', 'LIKE', "$search%")->take(5)->pluck('name');
}
}