Я создал простой HTML-документ с JS-файлом для проверки вызова AJAX, и я знаю, что запрос XHR отправляется успешно, но в ответе нет ничего. В консоли я вижу, что атрибут template
не имеет никакого отношения, связанные с ним в post
запроса к серверу, но я не могу понять, почему ...AJAX не работает в Laravel 5.1
Мастер HTML:
<!DOCTYPE>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<script src="{!! asset('/js/main.js') !!}"></script>
</head>
<body>
@yield('content')
</body>
</html>
страницу HTML:
@extends('layouts.master')
@section('content')
<p>Make a new email to send out:</p>
{!! Form::token() !!}
<textarea id='template' style="resize:none;width:500px;height:100px;"></textarea>
<button id='addContacts'>Add Contacts</button>
<span id='loading' style='display:none;'>Loading...</span>
<div id='results'></div>
@endsection
JS файл (пробовал как type
и method
в запросе, но я использую JQuery 2.1.3, так как будет работать):
$(document).ready(function(){
// return the list of input fields for this template
$('#addContacts').click(function(){
$.ajax({
method: 'post',
url: 'http://newco.dev/addContacts',
data:
{
'template' : $('#template').val(),
'_token' : $('input[name=_token]').val()
},
error: function()
{
alert('Something went wrong.');
},
beforeSend: function() {
$('#loading').show();
},
success: function(response) {
$('#loading').hide();
$('#results').html(response);
}
});
});
}); // end doc ready
Маршруты:
Route::post('/addContacts', 'Act[email protected]');
контроллер (да, use App\Http\Requests;
входит в стоимость номера):
public function returnFields(Request $request)
{
sleep(2);
return $request->template;
}
Когда представлено, #loading
DIV отображается в течение 2 секунд, как и следовало ожидать, но тогда ничего не возвращается. ..
В инструментах dev (в Chrome) после нажатия кнопки:
Remote Address:192.168.10.10:80
Request URL:http://newco.dev/addContacts
Request Method:POST
Status Code:200 OK
FORM DATA:
template:
_token:AuOTiLSg3rKYtLDIH1abzsQHsLv0fzswgXIfzE8h
Ничего не зафиксировано в журналах Laravel; Я предполагаю, что это не ошибка 500
.
Любые идеи? Я использую Laravel каждый день как разработчик API, поэтому я очень хорошо знаком с его концепциями, но я не лучший разработчик JS (хотя у меня определенно есть опыт работы с ним), так что, возможно, я просто пропустил что-то очевидное. Если вам нужно больше данных, просто спросите.
Спасибо!
У вас возникли ошибки в консоли? –
Ничего ... Только сообщение об успешности на вкладке «Сеть» из ответа, указанного в вопросе. Ничего на вкладке «Консоль» или в самой консоли. Когда я вызываю элементы в DOM с консоли, они возвращаются правильно, что еще более запутанно. – dbadness
В вашем контроллере вы просто хотите спать и вернуть $ template. Какова цель этого? –