Я не могу получить свои данные из запроса AJAX в Laravel - PullRequest
2 голосов
/ 21 апреля 2020

Вот код моего Blade и он работает и отправляет запрос, но я не могу получить данные из AJAX.

Javascript

function addUser() {
    var name=document.getElementById("name").value;
    var email=document.getElementById("email").value;
    var password=document.getElementById("password").value;

    $.ajaxSetup({
        headers: {'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')}
    });
    $.ajax({
        type:'POST',
        url:'addUser',
        data: {name:name,email:email,password:password,},
        success:function(data) {
            $("#msg").html(data.msg);
        },
        error: function (data, textStatus, errorThrown) {
            console.log(data);
        },
        contentType: false,
        processData: false,
    });
}

Контроллер

public function index(Request $request) {
    $msg=User::create([
        'name' => $request->name,
        'email' => $request->email,
        'password' => bcrypt( $request->password),
    ]);
    return response()->json(array('msg'=> $msg), 200);
 }

1 Ответ

2 голосов
/ 21 апреля 2020

Удалить

contentType: false,
processData: false,

processData по умолчанию установлено на true и предполагает, что переданные данные являются объектом, установка его на false предотвратит поведение разбора по умолчанию - что вы делаете не хочу! Это может быть полезно в тех случаях, когда требуется отправить необработанные JSON, но они отличаются для формирования данных.

contentType также передается как application/x-www-form-urlencoded по умолчанию. Если для contentType установлено значение false, заголовок содержимого не устанавливается! Таким образом, удалив оба значения, вы получите правильные значения по умолчанию для успешной отправки вызова ajax.

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