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 =