Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

167
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!