2014-01-22 12 views
5

Ich möchte Authorization Header beim POST Daten an den Server übergeben. Ich versuchte

$.ajax({ 
    url : <ServiceURL>, 
    data : JSON.stringify(JSonData), 
    type : 'POST', 
    contentType : "text/html", 
    dataType : 'json', 
    success : function(Result) { 
    }, 
    beforeSend: function (xhr) { 
     xhr.setRequestHeader('Authorization', <Authorization Header Value>); 
    }, 
    error: function (RcvData, error) { 
     console.log(RcvData); 
    } 
}); 

Aber REST-Dienst gibt Fehler (Fehlercode: 500). Derselbe Dienst funktionierte mit $ .post(), bevor die Autorisierung hinzugefügt wurde. könnte mir jemand sagen "Wie Autorisierungsheader in $ .post()?"

Antwort

4

Verwenden

contentType: 'application/json', 

Sie haben data und contentType vermischt kann bekommen.

  • contentType ist die Content-type Header Sie senden.

  • data ändert, wie jQuery die empfangenen Daten behandelt.

4

Die jQuery $ Schnipsel() Methode akzeptiert einen headers Wert in den Einstellungen widersprechen.

So:

$.ajax({ 
    // url, data, etc... 
    headers: { 
     "Authorization" :"Basic " + myBase64variable, 
     "Content-Type" :"application/json" 
    } 
}); 

Quelle: http://api.jquery.com/jquery.ajax/

PS: Es scheint, Sie auch in einem neuen Einstellungsobjekt im beforeSend Parameter übergeben kann. Ich wusste das nicht, also danke für diese Frage :)