xhr setrequestheader headers example bearer auth jquery json authentication get xmlhttprequest

setrequestheader - Envío de encabezados de autorización con jquery y ajax



jquery get bearer token (2)

He visto las siguientes preguntas aquí en stackoverflow sin suerte en lo que estoy tratando de hacer.

Los encabezados de solicitud de autorización Ajax fallan una y otra vez

jQuery Ajax no autorizado 401 error

¿Enviando credenciales con publicaciones entre dominios?

Aquí está mi código que tengo actualmente:

$(document).ready(function() { $.ajax({ url: ''http://sample.domain.com/script.php?name1=value1&jsonp=?'', type: ''GET'', dataType: ''json'', contentType: "application/json", beforeSend: function(xhr) { xhr.setRequestHeader("Authentication", "Basic ZnJvbWFwcGx********uOnRoM24zcmQ1UmgzcjM=") //Some characters have been replaced for security but this is a true BASE64 of "username:password" }, success: function(data){ alert(data); } }); }); </script>

El subdominio que tengo está protegido con contraseña por un archivo .htpasswd. El inicio de sesión del sitio funciona bien para mí usando el combo de nombre de usuario / contraseña utilizado en la codificación base64.

Estoy ejecutando este script en un dominio diferente al que está en la url, ¿por qué tengo jsonp =? en la url

La respuesta que obtengo de la consola en el navegador es: GET http://sample.domain.com/script.php?name1=value1&jsonp=jsonp1334177732136 401 (Authorization Required)


JSONP usa un proxy de etiqueta de script. No admitiría encabezados personalizados. ¿Tienes el control del punto final? Si es así, busque activar CORS, o pase la clave de autenticación en la cadena GET.

Al usar jsonp, JQuery convierte su solicitud de URL "ajax" en:

<script src="[endpoint]"></script>

luego escribe una función aleatoria

var json9409d0sf0d9s0df90 = function() { //some callback logic here. }

y anexa? callback = json9409d0sf0d9s0df90

tu servidor luego dice

echo $_GET[''callback] . "(" . $json . ")";

y lo envía de vuelta como la respuesta tan

json9409d0sf0d9s0df90({some: data});

es exexigido por el navegador y manejado por los manejadores mágicos de jQuery que lo hacen responder como una devolución de llamada ajax normal.

Las cargas de elementos de AFAIK, <script src=""></script> no tendrán encabezados personalizados en ningún navegador estándar.


El nombre del encabezado es Authorization y está enviando " Authentication "

p.ej

Autorización: básica QWxhZGRpbjpvcGVuIHNlc2FtBmU =