Estoy trabajando en un consumidor para una API hecha a sí mismo y con serias dificultades para configurar el encabezado de autorización. Estoy usando jQuery para las peticiones Ajax, pero el 'beforeSend' no funciona en absoluto (utilizando violinista para examinar las solicitudes)Los encabezados de solicitud de autorización Ajax fallan una y otra vez
Este es mi código beforeSend:
$.ajax({
type: "GET",
url: url+"/Projects",
contentType: "application/json; charset=utf-8",
beforeSend: function (req) {
req.setRequestHeader("Authorization", AuthBuilder(username, password));
},
success: function (result) {
alert("success");
},
error: function (xhr, ajaxOptions, thrownError) {
alert("fail");
}
});
Bueno, si eso falla, ¿qué haces? Volver a la vieja manera para el envío de peticiones Ajax ... bien esto no funciona bien ...
Este es mi código normal:
function GET(address, callback, error) {
Request = getXMLHttpObject();
Request.open("GET", url + address, true);
var base64 = Base64.encode(username + ":" + password);
alert(base64);
Request.setRequestHeader("Authorization", "Basic " + base64);
Request.send();
Request.onreadystatechange = function() {
//alert(Request.readyState+" code "+Request.status);
if (Request.readyState == 4 && Request.status == 200) {
callback(jQuery.parseJSON(Request.responseText));
} else if (Request.readyState == 4 && Request.status >= 400) {
error(Request.status, Request.statusText);
}
}
}
no me importa el hecho de que soy no solicitando json específicamente porque el servicio devuelve json al predeterminado.
en información:
- el origen no importa, el servicio permite a todos los orígenes (se ha probado y confirmado)
- la Autorización funciona cuando se establece mediante encabezados (probado en otros clientes)
- los encabezados de autorización no se envían
- AuthBuilder (nombre de usuario, contraseña)) da el formato correcto del contenido de la cabecera de autenticación básica
- la getXMLHttpObject() es sólo una copia pegar código y funcionó antes de
¿Alguna idea?