Вызов AJAX в Laravel возвращает исключение Http - PullRequest
0 голосов
/ 12 октября 2018

Когда я пытался использовать ajax в laravel, он показывает следующую ошибку:

{"message": "", "exception": "Symfony \ Component \ HttpKernel \ Exception \ HttpException","file": "C: \ xampp \ htdocs \ TravelAssistant \ vendor \ laravel \ framework \ src \ Illuminate \ Foundation \ Exceptions \ Handler.php", "line": 203, "trace": [{"file": "C: \ xampp \ htdocs \ TravelAssistant \ vendor \ laravel \ framework \ src \ Illuminate \ Foundation \ Exceptions \ Handler.php "," line ": 175," function ":" prepareException "," class ":" Illuminate \ Foundation\ Exceptions \ Handler "," type ":" -> "}, {" file ":" C: \ xampp \ htdocs \ TravelAssistant \ app \ Exceptions \ Handler.php "," line ": 49," function ":"render", "class": "Illuminate \ Foundation \ Exceptions \ Handler", "type": "->"}, {"file": "C: \ xampp \ htdocs \ TravelAssistant \ vendor \ laravel \ framework \ src\ Illuminate \ Routing \ Pipeline.php "," line ": 83," function ":" render "," class ":" App \ Exceptions \ Handler "," type ":" -> "}, {" file ": "C: \ xampp \ htdocs \ TravelAssistant \ vendor \ laravel \ framework \ src \ Illuminate \Routing \ Pipeline.php "," line ": 55," function ":" handleException "," class ":" Illuminate \ Routing \ Pipeline "," type ":" -> "}, {" file ":" C: \ xampp \ htdocs \ TravelAssistant \ vendor \ laravel \ framework \ src \ Illuminate \ View \ Middleware \ ShareErrorsFromSession.php "," line ": 49," function ":" Illuminate \ Routing \ {closure} "," class ": "Подсветка \ Маршрутизация \ Трубопровод", "тип": "->"}, {"файл": "C: \ xampp \ htdocs \ TravelAssistant \ vendor \ laravel \ framework \ src \ Illuminate \ Pipeline \ Pipeline.php", "line": 151, "function": "handle", "class": "Illuminate \ View \ Middleware \ ShareErrorsFromSession", "type": "->"}, {"file": "C: \ xampp \htdocs \ TravelAssistant \ vendor \ laravel \ framework \ src \ Illuminate \ Routing \ Pipeline.php "," line ": 53," function ":" Illuminate \ Pipeline \ {closure} "," class ":" Illuminate \ Pipeline \Конвейер "," type ":" -> "}, {" file ":" C: \ xampp \ htdocs \ TravelAssistant \ vendor \ laravel \ framework \ src \ Illuminate \ Session \ Middleware \ StartSession.php "," line ": 63, "function": "Illuminate \ Routing \ {closure}", "class": "Illuminate \Маршрутизация \ Pipeline "," type ":" -> "}, {" file ":" C: \ xampp \ htdocs \ TravelAssistant \ vendor \ laravel \ framework \ src \ Illuminate \ Pipeline \ Pipeline.php "," line ": 151, "function": "handle", "class": "Illuminate \ Session \ Middleware \ StartSession", "type": "->"}, {"file": "C: \ xampp \ htdocs \ TravelAssistant \vendor \ laravel \ framework \ src \ Illuminate \ Routing \ Pipeline.php "," line ": 53," function ":" Illuminate \ Pipeline \ {closure} "," class ":" Illuminate \ Pipeline \ Pipeline ","тип ":" -> "}, {" file ":" C: \ xampp \ htdocs \ TravelAssistant \ vendor \ laravel \ framework \ src \ Illuminate \ Cookie \ Middleware \ AddQueuedCookiesToResponse.php "," line ": 37,"function ":" Illuminate \ Routing \ {closure} "," class ":" Illuminate \ Routing \ Pipeline "," type ":" -> "}, {" file ":" C: \ xampp \ htdocs \ TravelAssistant \vendor \ laravel \ framework \ src \ Illuminate \ Pipeline \ Pipeline.php "," line ": 151," function ":" handle "," class ":" Illuminate \ Cookie \ Middleware \ AddQueuedCookiesToResponse "," type ":"-> "}, {" file ":" C: \ xampp \ htdocs \ TravelAssistant \ vendor \ laravel \ framework \ src \ Illuminate \ Routing \ Pipeline.php "," line ": 53," function ":" Illuminate \ Pipeline \ {closure} "," class ":" Illuminate \ Pipeline \ Pipeline "," type ":"-> "}, {" file ":" C: \ xampp \ htdocs \ TravelAssistant \ vendor \ laravel \ framework \ src \ Illuminate \ Cookie \ Middleware \ EncryptCookies.php "," line ": 59," function ":"Подсветка \ Routing \ {closure} "," class ":" Подсветка \ Routing \ Pipeline "," type ":" -> "}, {" file ":" C: \ xampp \ htdocs \ TravelAssistant \ vendor \ laravel \ "framework \ src \ Illuminate \ Pipeline \ Pipeline.php "," line ": 151," function ":" handle "," class ":" Illuminate \ Cookie \ Middleware \ EncryptCookies "," type ":" -> "}, {"file": "C: \ xampp \ htdocs \ TravelAssistant \ vendor \ laravel \ framework \ src \ Illuminate \ Routing \ Pipeline.php", "line": 53, "function": "Illuminate \ Pipeline \ {closure} "," class ":" Illuminate \ Pipeline \ Pipeline "," type ":" -> "}, {" file ":"C: \ xampp \ htdocs \ TravelAssistant \ vendor \ laravel \ framework \ src \ Illuminate \ Pipeline \ Pipeline.php", "line": 104, "function": "Illuminate \ Routing \ {closure}", "class": "Подсветка \ Маршрутизация \ Трубопровод", "Тип": "->"}, {"файл": "C: \ xampp \ htdocs \ TravelAssistant \ vendor \ laravel \ framework \ src \ Illuminate \ Routing \ Router.php", "line": 667, "function": "then", "class": "Illuminate \ Pipeline \ Pipeline", "type": "->"}, {"file": "C: \ xampp \ htdocs \TravelAssistant \ vendor \ laravel \ framework \ src \ Illuminate \ Routing \ Router.php "," line ": 642," function ":" runRouteWithinStack "," class ":" Illuminate \ Routing \ Router "," type ":"-> "}, {" file ":" C: \ xampp \ htdocs \ TravelAssistant \ vendor \ laravel \ framework \ src \ Illuminate \ Routing \ Router.php "," line ": 608," function ":" runRoute ", "class": "Illuminate \ Routing \ Router", "type": "->"}, {"file": "C: \ xampp \ htdocs \ TravelAssistant \ vendor \ laravel \ framework \ src \ Illuminate \ Routing \Router.php "," line ": 597," function ":" dispatchToRoute "," class ":" Illuminate \ Routing \ Router "," type ":"-> "}, {" file ":" C: \ xampp \ htdocs \ TravelAssistant \ vendor \ laravel \ framework \ src \ Illuminate \ Foundation \ Http \ Kernel.php "," line ": 176," function ":"dispatch "," class ":" Illuminate \ Routing \ Router "," type ":" -> "}, {" file ":" C: \ xampp \ htdocs \ TravelAssistant \ vendor \ laravel \ framework \ src \ Illuminate \ "Routing \ Pipeline.php "," line ": 30," function ":" Illuminate \ Foundation \ Http \ {closure} "," class ":" Illuminate \ Foundation \ Http \ Kernel "," type ":" ->"}, {" file ":" C: \ xampp \ htdocs \ TravelAssistant \ vendor \ fideloper \ proxy \ src \ TrustProxies.php "," line ": 57," function ":" Illuminate \ Routing \ {closure} ", "class": "Illuminate \ Routing \ Pipeline", "type": "->"}, {"file": "C: \ xampp \ htdocs \ TravelAssistant \ vendor \ laravel \ framework \ src \ Illuminate \ Pipeline \Pipeline.php "," line ": 151," function ":" handle "," class ":" Fideloper \ Proxy \ TrustProxies "," type ":" -> "}, {" file ":" C: \xampp \ htdocs \ TravelAssistant \ vendor \ laravel \ framework \ src \ Illuminate \ Routing \ Pipeline.php "," line ": 53," function ":" Illuminate \ Pipeline \ {closure} "," class ":" Illuminate \ Pipeline \ Pipeline "," type ":" -> "}, {" file ":" C: \ xampp \ htdocs \ TravelAssistant \ vendor \ laravel \ framework \ src \ Illuminate\ Foundation \ Http \ Middleware \ TransformsRequest.php "," line ": 31," function ":" Illuminate \ Routing \ {closure} "," class ":" Illuminate \ Routing \ Pipeline "," type ":" -> "}, {" file ":" C: \ xampp \ htdocs \ TravelAssistant \ vendor \ laravel \ framework \ src \ Illuminate \ Pipeline \ Pipeline.php "," line ": 151," function ":" handle ","class": "Illuminate \ Foundation \ Http \ Middleware \ TransformsRequest", "type": "->"}, {"file": "C: \ xampp \ htdocs \ TravelAssistant \ vendor \ laravel \ framework \ src \ Illuminate\ Routing \ Pipeline.php "," line ": 53," function ":" Подсветка \ Pipeline \ {closure} "," class ":" Подсветка \ Pipeline \ Pipeline "," type ":" -> "},{"file": "C: \ xampp \ htdocs \ TravelAssistant \ vendor \ laravel \ framework \ src \ Illuminate \ Foundation \ Http \ Middleware \ TransformsRequest.php", "line": 31, "function": "Illuminate \ Routing\ {closure} "," class ":" Illuminate \ Routing \ Pipeline "," type ":" -> "},{"file": "C: \ xampp \ htdocs \ TravelAssistant \ vendor \ laravel \ framework \ src \ Illuminate \ Pipeline \ Pipeline.php", "line": 151, "function": "handle", "class":"Подсветка \ Foundation \ Http \ Middleware \ TransformsRequest", "type": "->"}, {"file": "C: \ xampp \ htdocs \ TravelAssistant \ vendor \ laravel \ framework \ src \ Illuminate \ Routing \ Pipeline.php "," line ": 53," function ":" Illuminate \ Pipeline \ {closure} "," class ":" Illuminate \ Pipeline \ Pipeline "," type ":" -> "}, {" file ": "C: \ xampp \ htdocs \ TravelAssistant \ vendor \ laravel \ framework \ src \ Illuminate \ Foundation \ Http \ Middleware \ ValidatePostSize.php", "line": 27, "function": "Illuminate \ Routing \ {closure}"," class ":" Illuminate \ Routing \ Pipeline "," type ":" -> "}, {" file ":" C: \ xampp \ htdocs \ TravelAssistant \ vendor \ laravel \ framework \ src \ Illuminate \ Pipeline\ Pipeline.php "," line ": 151," function ":" handle "," class ":"Подсветка \ Foundation \ Http \ Middleware \ ValidatePostSize", "type": "->"}, {"file": "C: \ xampp \ htdocs \ TravelAssistant \ vendor \ laravel \ framework \ src \ Illuminate \ Routing \ Pipeline".php "," line ": 53," function ":" Illuminate \ Pipeline \ {closure} "," class ":" Illuminate \ Pipeline \ Pipeline "," type ":" -> "}, {" file ": "C: \ xampp \ htdocs \ TravelAssistant \ vendor \ laravel \ framework \ src \ Illuminate \ Foundation \ Http \ Middleware \ CheckForMaintenanceMode.php", "line": 62, "function": "Illuminate \ Routing \ {closure}"," class ":" Illuminate \ Routing \ Pipeline "," type ":" -> "}, {" file ":" C: \ xampp \ htdocs \ TravelAssistant \ vendor \ laravel \ framework \ src \ Illuminate \ Pipeline\ Pipeline.php "," line ": 151," function ":" handle "," class ":" Illuminate \ Foundation \ Http \ Middleware \ CheckForMaintenanceMode "," type ":" -> "}, {" file ": "C: \ xampp \ htdocs \ TravelAssistant \ vendor \ laravel \ framework \ src \ Illuminate \ Routing \ Pipeline.php", "line": 53, "function": "Illuminate \ Pipeline \ {closure}", "class":" Подсветка \ Трубопровод \ Трубопровод "," тип ":" -> "}, {"file": "C: \ xampp \ htdocs \ TravelAssistant \ vendor \ laravel \ framework \ src \ Illuminate \ Pipeline \ Pipeline.php", "line": 104, "function": "Illuminate \ Routing \ {closure}", "class": "Illuminate \ Routing \ Pipeline", "type": "->"}, {"file": "C: \ xampp \ htdocs \ TravelAssistant \ vendor \ laravel \ framework \ src \ Illuminate \ Foundation \"Http \ Kernel.php "," line ": 151," function ":" then "," class ":" Illuminate \ Pipeline \ Pipeline "," type ":" -> "}, {" file ":" C: \ xampp \ htdocs \ TravelAssistant \ vendor \ laravel \ framework \ src \ Illuminate \ Foundation \ Http \ Kernel.php "," line ": 116," function ":" sendRequestThroughRouter "," class ":" Illuminate \ Foundation \Http \ Kernel "," type ":" -> "}, {" file ":" C: \ xampp \ htdocs \ TravelAssistant \ public \ index.php "," line ": 55," function ":" handle ", "class": "Illuminate \ Foundation \ Http \ Kernel", "type": "->"}, {"file": "C: \ xampp \ htdocs \ TravelAssistant \ server.php", "line": 21, "function": "require_once"}]}

Код моего контроллера:

public function getPublicAttraction(Request $request)
    {
        return response(['msg'=>'success']);
    }

Вызов ajax,

<script>
    function getAttraction()
    {

        var pass= {'_token':$('meta[name="csrf-token"]').attr('content')

    };
    $.ajax({
            type:'POST',
            url:'{{route("Attractions")}}',
            datatype:'json',
            data: pass,
            success:function(data){
                $("#public_attractions").html(data.msg);
            }
        }).fail(function(jqXHR, textStatus, error){
            $("#public_attractions").html(jqXHR.responseText);
        });


    }
    $(document).ready(function(){
         getAttraction();
    });
</script>

метатег с токеном csrf,

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

запись файла маршрута web.php,

Route::post('/getAttractions','AjaxController@getPublicAttraction')->name('Attractions');

Я думаю, что застрял, пожалуйста, помогите.

Ответы [ 2 ]

0 голосов
/ 12 октября 2018

Хорошо, все выглядит хорошо, за исключением того, что метатег CSRF, потому что вам не нужно ничего экранировать в токене csrf, поэтому правильный способ печати токена будет: <!-- CSRF Token --> <meta name="csrf-token" content="{{ csrf_token() }}"> Это лучшее предположениеЯ не могу дать вам, потому что вы не предоставляете ни HTTP-статус ответа, ни ситуацию, в которой выдается исключение. Сообщение об исключении также пусто, так что ...

0 голосов
/ 12 октября 2018

Почему вы заново изобретаете что-то, что работает нормально.

1-й Токен в лезвии должен выглядеть следующим образом: (у вас есть дополнительный !! по любой причине)

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

2-й Поместите этот код где-нибудь в мастер-клинок:

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

Источник https://laravel.com/docs/5.7/csrf#csrf-x-csrf-token

...