JQuery CORS und Leitet

Mithilfe Von JQuery 1.8.2

Ich mache einen CORS-request zu einer app von einem Anwendungsserver (Vor) zu einem anderen Anwendungsserver (Zurück) server. Wenn ich den folgenden Ajax-Aufrufe aus Vor, die Antwort 302 (security check) von Zurück wird geehrt, aber mein JSESSIONID-cookie wird nicht gespeichert:

$.ajax({
    url : url,
    dataType : 'html',
    success : function(data, status, xhr) {
    $(dataContainer).append(data);
    },
    complete: function(xhr, status, error) {
    if (xhr.status != 200) {
        $.logger(xhr.getResponseHeader('Location'));
        }
    }
});

Nun, wenn ich den gleichen Anruf, aber fügen Sie in der withCredentials, meine JSESSIONID wird korrekt gespeichert, aber die 302-Weiterleitung ist gelöscht wird. Chrome & Firefox (neueste Versionen von beiden) einfach nicht mehr die Verarbeitung der Anfrage.

$.ajax({
    xhrFields: { withCredentials: true },
    url : url,
    dataType : 'html',
    success : function(data, status, xhr) {
    $(dataContainer).append(data);
    },
    complete: function(xhr, status, error) {
    if (xhr.status != 200) {
        $.logger(xhr.getResponseHeader('Location'));
        }
    }
});

Ich versucht, um die redirect-location-header aus der xhr-Objekt, aber es ist leer.

Ich bin Einstellung, die im folgenden auf alle Antworten kommen aus Zurück:

response.setHeader("Access-Control-Allow-Origin", "*");
response.setHeader("Access-Control-Allow-Methods", "GET,POST,OPTIONS");
response.setHeader("Access-Control-Max-Age", "1728000");
response.setHeader("Access-Control-Allow-Headers", "Cookie,X-Requested-With");
response.setHeader("Access-Control-Allow-Credentials", "true");
response.setHeader("Access-Control-Expose-Headers", "Location");

Natürlich werde ich Grenze den Ursprung, wenn/falls ich es bekommen kann, zu arbeiten.

Weiß jemand, was nötig ist, um das arbeiten mit JQuery? Ist es ein JQuery Problem, oder man erlebt mit allen Ajax+CORS-Anfragen?

InformationsquelleAutor panth13 | 2013-01-25
Schreibe einen Kommentar