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

199
Vistas
Llamada cruzada trabajando con Post pero fallando con pre-vuelo

Tengo que hacer una llamada de servicio web desde mis sitios web a un dominio/servidor de terceros. Mientras hago esta llamada usando el método jQuery Ajax by Post con content-type:text/plain y funciona bien.

Pero mientras lo cambio a tipo de contenido: texto/xml, arroja:

La respuesta a la solicitud de verificación previa no pasa la verificación de control de acceso: no hay ningún encabezado 'Access-Control-Allow-Origin' en el recurso solicitado.

Incluso se configuró en un servidor de terceros para permitir el acceso a nuestro sitio web. Y recibimos este encabezado al hacer una llamada con content-type:text/plain.

También hemos agregado seguimiento en el servidor de terceros.

 Access-Control-Allow-Methods : Get , Post , Options ,PUT Access-Control-Allow-Headers: Authorization,origin, content-type, accept

Por favor, hágame saber cuál podría ser la razón por la que la solicitud previa al vuelo no recibe la respuesta 'Access-Control-Allow-Origin'.

over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

La razón por la que su secuencia de comandos funciona para texto/simple es porque es una solicitud simple. Si observa esta respuesta , puede ver que su solicitud de texto/sin formato cumple con los requisitos para una solicitud simple. Sin embargo, cuando cambia el tipo de contenido a texto/xml, lo cambia a una solicitud "no simple".

Para que su solicitud "no simple" funcione, deberá ver cómo hacer una solicitud previa al vuelo. Este sitio web explica cómo puede hacerlo en "Gestionar una solicitud no tan simple".

Actualizar

Solo una nota: Access-Control-Allow-Methods es sensible a la conversión (todo en mayúsculas), y no necesita enumerar ningún método utilizado para una solicitud simple (GET, HEAD, POST). - fuente

 Access-Control-Allow-Methods: OPTIONS, PUT Access-Control-Allow-Headers: Authorization, Origin, Content-Type, Accept

Firefox no incluye un encabezado de origen en las solicitudes del mismo origen. Pero Chrome y Safari incluyen un encabezado de origen en las solicitudes POST/PUT/DELETE del mismo origen (las solicitudes GET del mismo origen no tendrán un encabezado de origen).

¿Existe la posibilidad de que el origen sea el mismo?

¿Podría haber un problema con su almacenamiento en caché ?

Asegúrese de tener estas configuraciones para su llamada jquery ajax:

 crossDomain: true // Will force a cross domain request cache: false
over 4 years ago · Santiago Trujillo Denunciar

0

La diferencia entre content-type:text/plain y content-type: text/xml es: "text/xml" requiere "preflight" pero "text/plain" no.

Desde MDN :

En particular, una solicitud se verifica previamente si:

Utiliza métodos distintos a GET, HEAD o POST. Además, si POST se utiliza para enviar datos de solicitud con un tipo de contenido que no sea application/x-www-form-urlencoded, multipart/form-data o text/plain, por ejemplo, si la solicitud POST envía una carga útil XML al servidor usando application/xml o text/xml, entonces la solicitud se verifica previamente.

Algunas razones potenciales que pueden causar la falla de una solicitud de verificación previa:

  1. CORS no está habilitado por el servidor. Busque cómo habilitar CORS para su tecnología de servidor.
  2. El servidor no consume una solicitud que no sea "texto/simple". Por ejemplo; Spring tiene una opción de consumo que define qué tipo de contenido es aceptable.
  3. Hay un encabezado de "Autorización" en su publicación. Si está enviando solicitudes con credenciales, debe agregar Access-Control-Allow-Credentials: true header también. Nuevamente desde MDN .
over 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