2014-01-17 59 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 
     }); 
相关问题