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

159
Visualizações
La adición de encabezados a la solicitud ajax falla

Esto parecería ser muy sencillo, pero no puedo agregar encabezados HTTP adicionales a una solicitud que estoy tratando de hacer. Lo he visto a través de las herramientas de desarrollo del navegador, así como con BurpSuite. Estoy usando JSONP ya que esta es una llamada entre sitios, pero eso no debería importar. Estoy perplejo y buscando alguna orientación.

Necesito agregar un token/valor en el encabezado de la solicitud que estoy realizando desde una API Rest de terceros para la autenticación. He eliminado el código en una página de muestra con fines de depuración. Aquí está la muestra que estoy usando:

 <!DOCTYPE html> <html> <head> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script> <script> function getData() { $.ajax({ type: "GET", url: "https://<somesite>.com/<path>", accept: "application/json", dataType: "jsonp", crossDomain: true, beforeSend: function (xhr) { xhr.setRequestHeader("Accept", "application/json"); xhr.setRequestHeader("x-token","<token value>"); }, data: { select: "timeZoneId" }, success: function (data, status) { debugger; alert("Sucess"); }, error: function (xhr, status, error) { debugger; alert("Error! :" + xhr.status); } }); } </script> </head> <body> <button type="button" onclick="getData()">Submit</button> </body> </html>

He pasado por todo tipo de contorsiones al agregar el token x como encabezado, pero nunca se agrega a la solicitud, por lo que puedo ver. El resultado de la solicitud siempre es un error no autorizado 401, que es el error esperado si se pasa un token x no válido o faltante. Como mencioné, una inspección de los encabezados no muestra el token x.

Los encabezados que veo son:

 GET /redzone/public/bi/v_completeddataitem?callback=jQuery36009809687059838048_1648150351509&select=timeZoneId&_=1648150351510 HTTP/2 Host: <somesite>.com Cookie: AWSALBCORS=f+1AWICQyRddSBjj6CNFH6f6XAnVjPOqAMq1JcPj9CCN1x1Izv1cFFXFKo7IKop53Lw4Y95mWWRjzHRAtOwTGccbwbvS8DBCDxJZY8WA9dEwu2Z/XKPeiSV+rAsb Sec-Ch-Ua: "(Not(A:Brand";v="8", "Chromium";v="99" Sec-Ch-Ua-Mobile: ?0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36 Sec-Ch-Ua-Platform: "Windows" Accept: */* Sec-Fetch-Site: cross-site Sec-Fetch-Mode: no-cors Sec-Fetch-Dest: script Referer: http://localhost/ Accept-Encoding: gzip, deflate Accept-Language: en-US,en;q=0.9

Gracias de antemano por cualquier sugerencia.

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

0

JSONP funciona inyectando un elemento <script> con un atributo src .

No hay forma de establecer encabezados de solicitud en un elemento <script> .

Esta es una de las muchas limitaciones de JSONP.

Use XMLHttpRequest o busque para solicitar JSON con CORS en su lugar.


Uno de los encabezados que está configurando es Accept: application/json , que no tiene sentido, ya que el único formato de datos que puede analizar con JSONP es JSONP (que es un subconjunto de text/javascript ).

Tengo la corazonada de que el problema es que el tercero no admite solicitudes de origen cruzado y está tratando de solucionarlo utilizando JSONP. Eso no funcionará ya que JSONP requiere que admitan explícitamente JSONP (al igual que una solicitud de origen cruzado moderna requiere que admitan explícitamente CORS).

Si el tercero no admite solicitudes de origen cruzado, debe realizar la solicitud desde un lugar que no sea el navegador. por ejemplo, proxy a través de su propio servidor.

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