Невозможно получить responseText от вызова AJAX в laravel - PullRequest
0 голосов
/ 11 мая 2018

У меня есть вызов AJAX, который выглядит следующим образом:

function getPosts(){
    $.ajaxSetup({
        headers: {
            'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
        }
    });
    $.post("get-posts",
        function(data, status){
            console.log(data);
            console.log(status);
        });
}

И в моих routs / web.php у меня есть:

Route::post('get-posts','PagesController@getPosts');

Ифункция controller_function выглядит следующим образом:

public function getPosts(){
        $posts = DB::table('users_queries')->get();
        echo json_encode($posts);
    }

Но проблема в том, что консоль записывает пустую строку.Чтобы убедиться, что я конвертировал объект php, я также вызвал функцию gettype($posts);, и она вернула объект.Затем я подумал, что проблема может быть в тегах <script>, и попробовал этот typeof(data), и он также вернул строку, которая убедилась, что данные являются строкой.Но когда я запустил console.log(data.length);, я был шокирован, потому что он записал 0. Но я смог сделать что-то вроде:

public function getPosts(){
    $posts = DB::table('users_queries')->where('id', 1)->first();
    echo $posts->author;
}

И все прошло хорошо, но я не могу получить весь JSON.Так в чем же проблема в моем коде?Я не могу понять это.Пожалуйста, помогите.

1 Ответ

0 голосов
/ 11 мая 2018

Верните свой ответ в формате JSON: https://laravel.com/docs/5.6/responses#json-responses

public function getPosts(){
    $posts = DB::table('users_queries')->get();
    return response()->json([
        'status' => 'success',
        'data'   => $posts
    ]);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...