Ошибка с Laravel API и jQuery - Пустой ответ при использовании response () -> json - PullRequest
0 голосов
/ 19 апреля 2020

Я только что столкнулся с очень странным поведением jQuery с Laravel API-интерфейсом. Не волнуйтесь, не обычная проблема аутентификации et c. Два сценария ios

1: нет выхода с jQuery

public function index(Request $request)
    {   
        $items = $this->repository->get();
        return response()->json(["data" => $items]);
    }

Their is no output

2: выход с jQuery

public function index(Request $request)
    {   
        $items = $this->repository->get();
        echo ".";
        return response()->json(["data" => $items]);
    }

Their is the output complete including the dot in front.

jQuery Звоните:

 $.ajax({
    url: url,
    type: 'GET',
    async: false, // tested with and without
    cache: false, // tested with and without
    ontentType: 'application/json', // tested with and without
    beforeSend: function beforeSend(xhr) {
      xhr.setRequestHeader('Authorization', 'Bearer ' + token);
    },
    dataType: 'text', //json
    success: function success(data) {
      debugger;
    },
    error: function error(xhr, status, _error2) {
      debugger;
    }
});

Интересно, что я не получаю в сценарии два только точка, я получаю все, что я тестировал со всеми различными jQuery dataTypes, accept-header и так далее. Далее я тестировал разные маршруты, все одинаково. Далее, Swagger и Postman показывают данные обоими способами, как и ожидалось. Я использую Chrome 80.0.3987 Официальный 64 бит.

Любые идеи о том, как справиться с этим?

Редактировать: Если я использую следующее, я также вижу оба результата (два раза одинаковые) , Это не может быть решением.

$items = $this->repository->get();
        echo($items->toJson(JSON_PRETTY_PRINT));        
        return response()->json(["data" => $items]);

1 Ответ

0 голосов
/ 20 апреля 2020

Решение было очень простым, но заняло у меня много времени. простое решение состоит в том, что ответ был пустым из-за отсутствия Acces-Control-Allow-Orgin. Он выдает 200 OK, но не позволяет получить доступ к содержимому ответа

Добавление ответа заголовка Access-Control-Allow-Origin в Laravel 5.3 Паспорт

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