问题
I am using jquery to post Json data to server. However when I make a post request as below,
$.ajax({
type : 'POST' ,
url : uri,
data : jsonStrJson,
contentType : 'application/json',
success : successFunction
});
The http request header content type is not "application/json" even though I posting a json object.
Since it is not applcation/json, the server does not process the requset and returns 415.
Is there a way to set the header using javascript or jquery API?
回答1:
Can you try this,
$.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);
}
});
回答2:
"contentType" instead "contentTYpe" should also solve the problem. ;)
回答3:
Also for setting http request header parameters you can try this approach:
$.ajax({
type : 'POST' ,
url : uri,
data : jsonStrJson,
headers : { 'Content-Type': 'application/json' }, //this line
success : successFunction
});
来源:https://stackoverflow.com/questions/21193038/posting-json-using-jquery-and-to-set-http-content-type-application-json