Ошибка 405 в Laravel 5.6 - PullRequest
       11

Ошибка 405 в Laravel 5.6

0 голосов
/ 27 августа 2018

Я отправляю данные формы через ajax на сервер, используя laravel 5.6 при отправке данных на сервер, я указал метод ajax для POST и метод маршрутизации в web.php для публикации, проблема в том, ajaxотправляет данные формы методом GET, а не POST.что я должен изменить ???

ajax-код

var form = $('#personPersonalInfoForm')[0];
var formData = new FormData(form);

$.ajax({
    url:"/addNewPerson",
    Type: "POST",
    data: formData,
    contentType: false,
    processData: false,
    success: function(data)
    {
        alert(data);
    }
});

web.php код

Route::post('/addNewPerson', 'adminController@addNewPerson');

Ответы [ 2 ]

0 голосов
/ 27 августа 2018

Вот пример рабочего кода с использованием FormData.Использование конфигурации "method" вместо "type" .

var form = document.getElementById("ajaxForm");
var formData = new FormData(form);
var url = form.action;
$.ajax({
    method : 'POST',
    url : url,
    data : formData,
    contentType: false,
    processData: false
}).done(function (data) {
    console.log(data);
}).error(function (data) {
    console.log(data);
});

Не забудьте добавить токен CSRF в форму.

<form method="POST" action="/addNewPerson" id="ajaxForm">
    @csrf
    ...
</form>

Или настроить метод ajax с самого начала с ним.

в add

<meta name="csrf-token" content="{{ csrf_token() }}">

и в JavaScript добавьте

$.ajaxSetup({
    headers: {
        'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
    }
});
0 голосов
/ 27 августа 2018

web.php

Route::post('/addNewPerson', 'adminController@addNewPerson')->name(admin.add_new_person);

в вашем adminController:

public function addNewPerson(Request $request){
   // you can check request parameters
   //return response()->json($request->all());

   // add new person code here ...

   return response()->json(array('status'=>'success','message'=>'person added'));
}

ваш код ajax должен быть:

$.ajax({
    url:"/addNewPerson",
    type: "POST",
    data:$('#personPersonalInfoForm').serialize(),
    dataType:'json',
    contentType: 'application/json',
    success: function(data)
    {
        alert(data);
    }, 
    error:function(){
       alert('ERROR');
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...