AJAX在本地工作; 404生产

时间:2018-12-07 19:49:54

标签: php laravel iis

我有一个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') }}";

在我的AJAX中,我将“ url”定义为“ / final-review”,这导致出现“ foobar.com/final-review/params”路由,而我真正需要的是“ foobar.com/app-name” / final-review / params”。

在本地测试,我的URL中没有“ app-name”。

0 个答案:

没有答案