Configuro mi servidor Jetty para permitir solicitudes HTTP entre dominios (allowedOrigins = *) y también para permitir la autenticación entre dominios (allowCredentials = true) usando su CrossOriginFilter. Las solicitudes HTTP de dominio cruzado sin requisito de autenticación funcionan bien. Ahora, cuando se trata de llamadas http que requieren autenticación, no funciona usando JQuery. Utilizo el siguiente código y seguido este ejemplo: http://www.aswinanand.com/2009/01/http-basic-authentication-using-ajax/jquery autenticación de dominio cruzado
function login(username, password) {
$.ajax({
type: "GET",
contentType: "application/json",
dataType: "json",
url: url,
beforeSend: function(xhr) {
var base64 = Base64.encode(username + ":" + password);
xhr.setRequestHeader("Authorization", "Basic " + base64);
xhr.withCredentials = true;
},
error: function(data){
alert("error");
},
success: function(data){
alert("success");
}
});
En HttpFox i ver la siguiente petición al servidor:
OPTIONS /login HTTP/1.1
...
Access-Control-Request-Method GET
Access-Control-Request-Headers authorization,content-type
El servidor responde con un
HTTP/1.1 204 No Content
...
Allow OPTIONS,GET,HEAD
I también usó las opciones a continuación, lo que no hace la diferencia.
$.ajax({
...
username: username,
password: password,
...
}
La función de error siempre se dispara. ¿Alguien una idea de lo que podría ser el problema?
ves esto en su cabecera de respuesta 'Access-Control -Allow-Origen: * '? ¡Gran pregunta por cierto! Bienvenido a StackOverflow! – jmort253
Creo que sería útil si pudieras mostrar cualquier acumulación de pila relacionada con el problema. – jmort253
bien, compruebe si ese encabezado está incluido en su respuesta.Si no es así, entonces es posible que la seguridad anule los encabezados de respuesta. Necesita ver más registros para depurar aún más. ¡Buena suerte! :) – jmort253