该路由不支持POST方法。支持的方法:GET,HEAD。拉拉维尔6

时间:2019-10-31 15:40:31

标签: jquery ajax laravel-6

我正在尝试使用AJAX发送带有图像的表格,但显然路由存在问题。我按原样放置了路线,但不会向我发送信息。它给我一个404错误。

$('#btn_enviar').click(function() {
  $(this).html('Sending..');

  $.ajaxSetup({
    headers: {
      'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
    }
  });

  $.ajax({
    data: $('#profesor').serialize(),
    url: "{{ URL('/SuperAdmin/StoreProfesor') }}",
    type: "POST",
    dataType: 'JSON',
    success: function(data) {
    },
    error: function(data) {
      console.log('Error:', data);
    }
  });
});
Route::POST('/SuperAdmin/StoreProfesor', 'ProfesorController@store')->name('/SuperAdmin/StoreProfesor');

2 个答案:

答案 0 :(得分:0)

路由用法错误。

url: "{{ route('SuperAdmin.StoreProfesor') }}",

您应该以这种方式使用它。您还可以通过输入“。”来定义名称。

Route::POST('/SuperAdmin/StoreProfesor', 'ProfesorController@store')->name('SuperAdmin.StoreProfesor');

答案 1 :(得分:0)

我咨询了一个人,他回答了以下问题,这是因为外部文件无法识别Laravel帮助者。 答案是: 在我的html5文件中:

<button type="submit" id="btn_enviar" data-uri="{{ route('SuperAdmin.StoreProfesor') }}" class="btn btn-lg btn-primary btn-block">Enviar</button>

在我的Ajax文件中:

$('#btn_enviar').click(function (e) {
        e.preventDefault();
        $(this).html('Sending..');
        var url = $(this).data('uri');
        $.ajax({
          data: $('#profesor').serialize(),
          url: url,
          type: "POST",
          dataType: 'json',
          success: function (data) {


          },
          error: function (data) {
              //console.log('Error:', data);
              $('#btn_enviar').html('Save Changes');
          }
      });
    });