Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

198
Vistas
AJAX: error de verificación previa 400

En mi aplicación, recibo un error de verificación previa en la segunda llamada AJAX cuando realizo la siguiente llamada de dos pasos:

 $.ajax({ type:'POST', url:'https://podio.com/oauth/token', data: { 'grant_type': 'app', 'app_id': '#####', 'app_token': '#####', 'client_id': '#####', 'redirect_uri': '#####', 'client_secret': '#####' } }).done(function(response){ $.ajax({ type:'PUT', contentType: "application/json", headers: {'Authorization': 'OAuth2 ' + response.access_token}, url:'https://api.podio.com/item/1/value/142784383', data: JSON.stringify({"values": "doofus@test.com"}) }).done(function(response){ console.log(response) }).fail(function(error){ console.log(error) }) })

El error en Chrome (con la extensión de navegador CORS Toggle activada) es el siguiente:

jquery.min.js:4 OPCIONES https://api.podio.com/item/1 400 () test.html:1 XMLHttpRequest no puede cargar https://api.podio.com/item/1/value/142784383 . La respuesta para la verificación previa tiene un código de estado HTTP 400 no válido

y registros de Safari

 Failed to load resource: the server responded with a status of 403 (HTTP/2.0 403)

refiriéndose a https://api.podio.com/item/1/value/142784383

Aunque he usado llamadas AJAX como esta muchas veces para mis propias aplicaciones, no estoy familiarizado con algunos de los matices de interactuar con API externas. Cualquier idea sobre las causas y soluciones a este problema sería muy apreciada.

about 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Veo que define el tipo de contenido como application/json. Lo que pasa es que cuando el tipo de contenido es diferente al simple texto/html (y un par de otros), el navegador envía una solicitud de OPCIONES para asegurarse de que el servidor espera el tipo de contenido.

Luego, el servidor tiene que enviar un par de encabezados. Es posible que esté familiarizado con access-control-allow-origin: * pero el servidor también necesita decirle al navegador qué campos de encabezado está dispuesto a aceptar. Para eso, el servidor necesita enviar un

 Access-Control-Request-Headers: Content-Type

Esto le dice al navegador que el cliente puede enviar un encabezado de tipo de contenido en la solicitud real. Por lo tanto, debe asegurarse de que el servidor no solo acepte y devuelva 200 en una solicitud de OPCIONES, sino que también envíe los dos encabezados mencionados anteriormente.

En respuesta a su comentario, no necesita hacer nada en el cliente. El servidor necesita enviar esos encabezados.

Más

about 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda