POS-запрос Axios от Vuejs к структуре отдыха Django - PullRequest
0 голосов
/ 10 июля 2019

Я создаю api rest с помощью vuejs и django rest framework.Проблема в том, когда я сделал почтовый запрос.С запросом get он работает, но не с почтовым запросом.

axios
      .get('http://127.0.0.1:8000/api/users/')
      .then(response => (this.info = response.data))
axios
      .post('http://127.0.0.1:8000/api/users/', {
        params : {
          email : "test@gmail.com",
          username : 'test'
        }
      })
      .then(response => (this.info = response.data))
class UserViewSet(viewsets.ModelViewSet):
    queryset = User.objects.all().order_by('-date_joined')
    serializer_class = UserSerializer
router = routers.DefaultRouter()
router.register(r'users', UserViewSet)

urlpatterns = [
    path('', include(router.urls)),
]

Мой запрос на получение работает, но не мой почтовый запрос.В моей консоли у меня есть: http://127.0.0.1:8000/api/users/?username=test&email=test@gmail.com 400 (неверный запрос). И когда я смотрю сеть, у меня появляется {"username": ["Это поле обязательно для заполнения."]}

Я не понимаюпочему у меня есть эта ошибка.

1 Ответ

1 голос
/ 10 июля 2019

Параметры в аксиосах предназначены для строки запроса

Попробуйте

  axios
    .post('http://127.0.0.1:8000/api/users/', {
      email : "test@gmail.com",
      username : 'test'
    })
    .then(response => (this.info = response.data))

При публикации вы не хотите отправлять информацию в виде строки запроса, но как данные.

Другая подпись будет

axios({
  method: 'post',
  url: 'http://127.0.0.1:8000/api/users/',
  data: {
    email : "test@gmail.com",
    username : 'test'
  }
}).
.then(response => (this.info = response.data))

Вы можете ознакомиться с документацией здесь: https://github.com/axios/axios#example

Таким образом, причина, по которой вы получаете «имя пользователя требуется», потому что ваш серверчтение данных / полезной нагрузки, а не строки запроса.Он не находит отправленное имя пользователя и сообщает вам.

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