почтовый ментод не работает при отправке данных из ReactionJS в Django Restful API - PullRequest
0 голосов
/ 26 января 2019

вот мой код метода поста в реакции

const URL = `http://localhost:8000`
export default URL;

export function addRecruiterRegister(values,cb){
    const request=fetch(`${URL}/recruiterRegister`,{
        method:'POST',
        mode: "cors",
        headers: {
            'Accept': 'application/json',
            'Content-Type': 'application/json'
        },
        body: JSON.stringify(values)
        }).then(
          //  () => cb()
        )

        return {
            type:'ADD_RECRUITER',
            payload:'everything went fine'
    }
}

вот код в django-python

class RecruiterRegisterList(generics.ListAPIView):

    queryset=RecruiterRegister.objects.all()
    serializer_class = RecruiterRegisterSerializer
    filter_backends = (DjangoFilterBackend,)
    filter_fields=('email','password')

    def post(self, request, format=None):
        serializer = RecruiterRegisterSerializer(data=request.data)
        if serializer.is_valid():
            serializer.save()
            return Response(serializer.data, status=status.HTTP_201_CREATED)
        return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)

    def delete(self, request, pk, format=None):
        recruiterRegisters = self.get_object()
        recruiterRegisters.delete()
        return Response(status=status.HTTP_204_NO_CONTENT)

ошибка в консоли браузера:

Доступ к выборке в 'http://localhost:8000/recruiterRegister' из источника' http://localhost:3000' заблокирован политикой CORS: Ответ на запрос предварительной проверки не проходит проверку контроля доступа: Перенаправление не разрешено для запроса предварительной проверки , : 3000 / # / forms / recruiter-register-form: 1 Uncaught (в обещании) Ошибка типа: Не удалось получить

и в консоли python я получаю это, когда нажимаю на кнопку submit:

"ОПЦИИ / recruiterRegister HTTP / 1.1" 301 0

очень плохо знакомы с django-restframework и реагировать, пожалуйста, помогите !!

1 Ответ

0 голосов
/ 27 января 2019

Я думаю, проблема вызвана generics.ListAPIView.Это только метод get.Если вы также хотите сделать запрос post, вы должны использовать generics.CreateAPIView.

class RecruiterRegisterList(generics.CreateAPIView,
                            generics.ListAPIView):

    queryset=RecruiterRegister.objects.all()
    serializer_class = RecruiterRegisterSerializer
    filter_backends = (DjangoFilterBackend,)
    filter_fields=('email','password')

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