Api ответ нулевой, когда потребляется, с django и vue - PullRequest
0 голосов
/ 11 февраля 2019

Я использую мой API из остального фреймворка, когда я добрался до URL из API, он показывает, что это правильно.Но когда я потребляю его, ответ кажется нулевым.Я принимаю оба проекта (front vuejs и back django) в разных портах (8080 и 8000 соответственно).Разрешены CORS.

Я пробовал использовать другие инструменты, такие как fetch или jquery, и похоже, что он такой же.

Js:

export class APIService {
    contructor() {}

    get_user_id(){
        const url = `http://localhost:8000/api/v1/user-id/`;
        return axios.get(url).then(function (response) {
            console.log(response); // For testing
            return response.data;
        });
    }
}

Вид API Django, дляэтот URL:

class UserIdLoggedView(APIView):
    def get(self, request):
        user = request.user
        return Response({
            'id': user.id,
        })

Для этого случая мне не нужен сериализатор.

Вот как это показывает отдых django:

    {    HTTP 200 OK
    Allow: GET, HEAD, OPTIONS
    Content-Type: application/json
    Vary: Accept

    {
        "id": 1
    }

И этовывод ответа из консоли (только часть данных)

data:
   id: null

Вместо ожидаемого идентификатора = 1, как и ожидалось, возвращается ноль.

1 Ответ

0 голосов
/ 11 февраля 2019

почему вы используете два оператора возврата в get_user_id?Вы нажимаете первый оператор return, и он не ждет выполнения обещания.По сути, вы отправляете запрос на получение, но не ждете ответа.Также я бы порекомендовал создать базовый экземпляр axios в качестве vue-плагина.

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