Отправить массив с vanilla Js из Ajax в Laravel контроллер - PullRequest
1 голос
/ 13 июля 2020

Я хотел бы отправить массив с элементами на мой laravel контроллер с vanilla JS, (я не хочу использовать Jquery). Но я не могу заставить его работать ... Я нашел несколько решений в Интернете, пытаясь создать объект json и так далее, но ничего не хочет работать ...

Это мой код:

    var xhttp = new XMLHttpRequest();

         xhttp.onreadystatechange = function () {
         if(this.readyState == 4 && this.status == 200){
                alert('sent');

         }
          };


        xhttp.open("GET", '{{route('profile.toggleCategory', $user)}}', true);

        xhttp.send(categories);

и мой laravel контроллер:

public function toggleCategory(Request $request, User $user)
{

    dd($categories = $request->categories);

    $user->categories()->sync(collect($categories));
}

1 Ответ

0 голосов
/ 14 июля 2020

Я изменил кое-что, и теперь он работает!

Рабочий код:

web. php:

Route::post('{user}/togglecategory', 'Site\ProfileController@toggleCategory')->name('toggleCategory');

Javascript код:

var xhttp = new XMLHttpRequest();
         xhttp.onreadystatechange = function () {
         if(this.readyState == 4 && this.status == 200){
                alert('send');

         }
          };


        xhttp.open("POST", '{{route('profile.toggleCategory', $user)}}', true);

        xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        xhttp.setRequestHeader("X-CSRF-TOKEN", document.head.querySelector("[name=csrf-token]").content );

        xhttp.send("categories="+categories);


        });

Laravel Контроллер:

public function toggleCategory(Request $request, User $user)
    {
        $categories = explode(',', $request->categories);

        $user->categories()->sync($categories);
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...