Embora eu conheça muitas arquiteturas, como o ASP.NET MVC, têm funcionalidade incorporada para lidar com JSON.stringify como o contentType, minha situação é um pouco diferente; talvez isso possa ajudar alguém no futuro. Eu sei que teria me poupado horas!
Como minhas solicitações http estão sendo tratadas por uma API CGI da IBM (ambiente AS400) em um subdomínio diferente, essas solicitações são de origem cruzada, daí o jsonp. Na verdade, eu envio meu ajax via objeto (s) javascript. Aqui está um exemplo do meu ajax POST:
var data = {USER : localProfile,
INSTANCE : "HTHACKNEY",
PAGE : $('select[name="PAGE"]').val(),
TITLE : $("input[name='TITLE']").val(),
HTML : html,
STARTDATE : $("input[name='STARTDATE']").val(),
ENDDATE : $("input[name='ENDDATE']").val(),
ARCHIVE : $("input[name='ARCHIVE']").val(),
ACTIVE : $("input[name='ACTIVE']").val(),
URGENT : $("input[name='URGENT']").val(),
AUTHLST : authStr};
//console.log(data);
$.ajax({
type: "POST",
url: "http://www.domian.com/webservicepgm?callback=?",
data: data,
dataType:'jsonp'
}).
done(function(data){
//handle data.WHATEVER
});
dataType
não tem influência sobre como os dados são enviados. Apenas especifica que tipo de dados você espera que retorne pela chamada. Se você deseja indicar ao servidor qual é o tipo de dados que você está especificando nadata
propriedade, você precisa configurá-lacontentType
semelhante acontentType: "application/json"