2014-01-17 62 views
9

我正在使用jQuery將Json數據發佈到服務器。然而,當我做出如下POST請求,使用JQuery發佈JSON並設置HTTP內容類型 - 'application/json'

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

HTTP請求頭的內容類型不是「應用/ JSON」即使我發佈一個JSON對象。

由於它不是的applcation/JSON時,服務器不會處理requset並返回415

有沒有一種方法來設置使用JavaScript或jQuery的API的頭?

+7

'contentTYpe' - >'contentType'? –

+2

非常敏銳的眼睛@JasonP,我錯過了它 – Miller

+0

欣賞它。非常感謝你,我發佈了這篇文章,瞭解AJAX的Jquery API。我的錯。謝謝賈森 –

回答

25

你可以試試這個,

$.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

「的contentType」,而不是 「CONTENTTYPE」 也應該解決的問題。 ;)

+0

是啊,它已經在評論中提到。 –

0

還設置HTTP請求頭參數,你可以試試這個方法:

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