2017-11-20 1 views
0
var _this = this; 
$(document).ready(() => { 
    $("#loginForm").submit(function (event) { 

    // Standard-Aktion abbrechen 
    event.preventDefault(); 

    // Formular per AJAX senden 
    var form = $(this); 
    $.ajax({ 
     type: 'POST', 
     url: form.prop('action'), 
     data: form.serialize(), 
     success: (output, status, xhr) => { 

     if (output.match(someString) === null) { 
      console.log(xhr.getAllResponseHeaders); 
      var header = xhr.getResponseHeader('Set-Cookie'); 
      console.log(header); 
      //loggin erfolgreich 
      _this.navCtrl.setRoot("HomePage"); 
     } else { 
        . 
        . 
        . 

Hallo Jungs, xhr.getAllResponseHeader Quellcode

Ich versuche, meine Antwort-Header drucken

zurückgibt. In dem Beispiel suche ich nach einem bestimmten Header, aber es gibt null zurück. Wenn ich .getAllResponseHeaders verwenden, druckt er den Quellcode und nicht den Wert:

ƒ() { 
       return completed ? responseHeadersString : null; 
      } 
+0

'console.log (xhr.getAllResponseHeaders);' Ja, das wird nicht die Funktion 'getAllResponseHeaders' ausführen –

+0

wie es dann auszuführen? – felix9607

Antwort

2

Wenn eine Methode aufrufen, nicht zu vergessen die ():

console.log(xhr.getAllResponseHeaders()); 

jedoch die zugrunde liegende Problem ist, dass Sie benötigen mehr Berechtigungen für diese Linie:

var header = xhr.getResponseHeader('Set-Cookie'); 

Sie nur den Zugriff auf einfache Header in Ihrem JavaScript bekommen, wenn Ihr Server sie Expos sein können ed, zum Beispiel:

Access-Control-Expose-Headers: Set-Cookie 

Sie müssen diese Server-Seite hinzufügen, damit Ihr JavaScript auf die Kopfzeile zugreifen kann.

+0

vielen Dank. das() zu vergessen war ziemlich peinlich. – felix9607