AJAX работает локально;404 на производстве - PullRequest
0 голосов
/ 07 декабря 2018

У меня есть приложение 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">&times;</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">&times;</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') }}";

Inмой AJAX я определял "url" как "/ final-review", что привело к маршруту "foobar.com/final-review/params", что мне действительно нужно было "foobar.com/app-name/final-review/params".

Локальное тестирование. У меня не было «app-name» в моем URL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...