Ajax-вызов имеет только токен в ответе - PullRequest
1 голос
/ 21 сентября 2019

Я использую Laravel с Ajax.
Я пытаюсь сделать Ajax-вызов для контроллера.Я сделал print_r на $request, но у меня есть только токен в массиве, никаких других данных.
Я попытался поиграться с объектом данных в вызове Ajax, который никогда не появляется в запросе.

Вид:

@section('head')
<meta name="csrf-token" content="{{ csrf_token() }}" />
@endsection
<div>
  <button type="submit" id="submit" class="btn btn-primary">Confirm</button>
</div>
<script src="https://code.jquery.com/jquery-3.4.1.min.js"></script>
<script type="text/javascript">
$.ajaxSetup({
    headers: {
        'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content'),
    }
});
</script>
<script type="text/javascript" src="{{ URL::asset('js/test.js') }}"></script>

test.js

 $( document ).ready(function() 
    {
        $( "#submit" ).click(function() 
        {
            $.ajax(
            {
                type:'POST',
                url:'{{ route("test") }}',
                data:{test: "test"},
                success:function(data) 
                {
                    console.log(data.msg);
                }
            });
        });
    });

Контроллер:

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Routing\Controller;

use App\Http\Requests;
use Session;

class testController extends Controller
{

    public function test(Request $request)
    {
     $data = $request->all();
     print_r($data);
   }
 }

Результаты

Array ( [_token] => fKmSJpY0DRyCqzXyDPo2LwiJSD1wEiThVYn29lX7)

1 Ответ

0 голосов
/ 21 сентября 2019

Я бы попробовал переместить

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

в $( document ).ready(function()

Я думаю, это может быть проблемой с областью действия.Попробуйте и посмотрите, работает ли это.

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