Configuro il mio server Jetty per consentire le richieste http del dominio multiplo (allowedOrigins = *) e anche per consentire l'autenticazione cross-domain (allowCredentials = true) utilizzando il suo CrossOriginFilter. Le richieste http del dominio incrociato senza requisiti di autenticazione funzionano correttamente. Ora, quando si tratta di chiamate http che richiedono l'autenticazione, non funziona con JQuery. Io uso il seguente codice e seguito questo esempio: http://www.aswinanand.com/2009/01/http-basic-authentication-using-ajax/jquery autenticazione cross domain
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");
}
});
In HttpFox vedo la seguente richiesta al server:
OPTIONS /login HTTP/1.1
...
Access-Control-Request-Method GET
Access-Control-Request-Headers authorization,content-type
Il server risponde con un
HTTP/1.1 204 No Content
...
Allow OPTIONS,GET,HEAD
anche io usato le opzioni qui sotto, che non fa la differenza.
$.ajax({
...
username: username,
password: password,
...
}
La funzione di errore si attiva sempre. Qualcuno ha un'idea di quale potrebbe essere il problema?
vedete questo nella vostra intestazione di risposta 'Ingressi Controllo -ALLOW-Origin: * '? Grande domanda a proposito! Benvenuto in StackOverflow! – jmort253
Penso che sarebbe utile se potessi mostrare anche qualsiasi stacktrace relativo al problema. – jmort253
ok, controlla se l'intestazione è inclusa nella risposta.In caso contrario, è possibile che la sicurezza stia annullando le intestazioni di risposta. È necessario vedere più registri per eseguire il debug ulteriormente. In bocca al lupo! :) – jmort253