У меня есть приложение Laravel, которое отлично работает локально, но каждый вызов AJAX возвращает 404 при размещении. Я не уверен, что это из-за ошибки конфигурации сервера, отсутствия настройки php.ini или чего-то еще? Я привел пример неудачного звонка.
AJAX / JQ:
var url = "/final-review";
$("#review_note_text").change(function(){
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name = "_token"]').attr('content')
}
});
$('#review_note_loader').show();
var formData = {
note_text: $('#review_note_text').val(),
};
var type = "POST";
var reviewNoteUrl = url + '/review-note';
$.ajax({
type: type,
url: reviewNoteUrl,
data: formData,
dataType: 'json',
success: function (data) {
$('#failure-message-review').hide();
$('#success-message-review p').html("Saved successfully" + '<a href = "#" class = "close" data-dismiss = "alert" aria-label = "close">×</a>');
$('#success-message-review').show();
$('#review_note_loader').removeClass("halted-loader").hide();
},
error: function (data) {
$('#review_note_loader').addClass("halted-loader");
$('#failure-message-review p').html("Something went wrong, your record was not updated. <strong>Error Code: " + data.status + "</strong>" + '<a href = "#" class = "close" data-dismiss = "alert" aria-label = "close">×</a>');
$('#failure-message-review').show();
}
});
});
Мой соответствующий маршрут:
Route::post('final-review/review-note', 'FinalReviewController@update_review_note');
Функция контроллера
public function update_review_note(Request $request){
$validatedData = $request->validate([
'note_text' => 'nullable|string',
]);
$note = \App\ReviewNote::create([
'note_text' => $request->get('note_text'),
'author' => Auth::user()->name,
'created_at' => now()
]);
return Response::json($note);
}
РЕШЕНО:
Мне пришлось изменить переменную url в моем шаблоне лезвия, чтобы она была:
var url = "{{ url('/final-review') }}";
В моем AJAX я определял «url» как «/ final-review», что привело к маршруту «foobar.com/final-review/params», в чем мне действительно нужно было «foobar.com/app-name/final-». обзор / параметры ".
При локальном тестировании в моем URL-адресе не было «app-name».
@CameronHurd Он не создает журналы laravel или журналы IIS. Стоит ли мне искать еще где-нибудь?
у вас есть возможность переписать URL? в противном случае звонок скорее всего должен быть /index.php/final-review/review-note/






Что говорят ваши журналы ошибок?