2014-01-17 14 views
9

Ich benutze jquery, um Json-Daten an den Server zu senden. Jedoch, wenn ich einen Beitrag Antrag stellen, wie unten,JSON mit JQuery veröffentlichen und HTTP-Inhaltstyp festlegen - 'application/json'

$.ajax({ 
       type  : 'POST' , 
       url   : uri, 
       data  : jsonStrJson, 
       contentType : 'application/json', 
       success  : successFunction 
     }); 

Der http-Request-Header Content-Typ ist nicht „application/json“ obwohl ich ein JSON-Objekt veröffentlichen.

Da es nicht applcation/json ist, wird der Server die requset verarbeiten und liefert 415.

Gibt es eine Möglichkeit, den Header mit Hilfe von Javascript oder jQuery API zu setzen?

+7

'contentTYpe' ->' contentType'? –

+2

sehr scharfes Auge @JasonP, ich verpasste es – Miller

+0

Schätzen Sie es. Vielen Dank, dass ich diese Thiniking gepostet habe. Ich verstehe die Jquery API für AJAX nicht. Mein Fehler. Danke Jason –

Antwort

25

Können Sie das versuchen,

$.ajax({ 
    beforeSend: function(xhrObj){ 
     xhrObj.setRequestHeader("Content-Type","application/json"); 
     xhrObj.setRequestHeader("Accept","application/json"); 
    }, 
    type: "POST", 
    url: uri,  
    data: jsonStrJson,    
    dataType: "json", 
    success: function(json){ 
     console.log(json); 
    } 
}); 
5

"content" statt "Contenttype" sollte auch das Problem lösen. ;)

+0

ja es ist bereits im Kommentar erwähnt. –

0

auch http-Request-Header Parameter zur Einstellung können Sie versuchen, diesen Ansatz:

$.ajax({ 
     type  : 'POST' , 
     url   : uri, 
     data  : jsonStrJson, 
     headers  : { 'Content-Type': 'application/json' }, //this line 
     success  : successFunction 
     });