Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

171
Visualizações
No se puede realizar una solicitud POST a través de fetch javascript a django rest api

acabo de empezar a aprender front-end y javascript. Entonces, anteriormente hice una API simple a través de Django Rest Framework. Y ahora, comience a probarlo a través de fetch-api de javascript. GET - no hay problema - funciona bien. POST: recibí un mensaje como: "415 Tipo de medio no compatible".

Aquí mi archivo html simplificado (tryjs.html) con solicitud POST de búsqueda incluida:

 <!DOCTYPE html> <html> <head> </head> <body> <script> let myurl2 = "http://127.0.0.1:8000/myfamily/"; async function myfu() { let response = await fetch(myurl2, { mode: "no-cors", method: 'POST', headers: { 'Accept': 'application/json', 'Content-Type': 'application/json' }, body: JSON.stringify({firstname: "first", secondname: "second"}) }) }; myfu(); </script> </body> </html>

Parece bastante simple y nada especial.

Aquí, el modelo.py de drf:

 from django.db import models class Family(models.Model): firstname = models.CharField(max_length=20) secondname = models.CharField(max_length=20) def __str__(self): return self.firstname

Y serializadores.py:

 from rest_framework import serializers from .models import Family class FamilySerializer(serializers.ModelSerializer): class Meta: model = Family fields = ('firstname', 'secondname')

Y ver:

 from rest_framework import viewsets from .models import Family from .serializers import FamilySerializer class FamilyViewSet(viewsets.ModelViewSet): queryset = Family.objects.all() serializer_class = FamilySerializer

Y urls.py de aplicaciones (agregado a urls.py de proyecto):

 from django.urls import path from rest_framework.routers import SimpleRouter from .views import FamilyViewSet from django.views.generic import TemplateView router = SimpleRouter() router.register('', FamilyViewSet, basename="family") urlpatterns = [ path('tryjs/', TemplateView.as_view(template_name="tryjs.html")), ] urlpatterns += router.urls

Hago la solicitud GET y POST a través del cartero; todo funciona bien. Hago la solicitud GET a través de un script javascript (he eliminado esta parte del código anterior), funciona bien. Tan pronto como intento hacer una solicitud POST a través del script js anterior, obtengo una falla sobre el tipo de medio incorrecto. Por favor ayuda. Intenté mucho. Y es un caso tan simple. Sin embargo... no funciona(

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

está obteniendo un tipo de medio incorrecto porque ha establecido mode: "no-cors" , lo que hace que el encabezado Content-Type sea inmutable. por lo que establecerlo en "application/json" se transformará automáticamente en "text/plain" . mantener el mode :"cors" y funcionará.

No es necesario que escriba el código js usted mismo, obtendrá el código del cartero. intenta usar eso

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda