Si bien sé que muchas arquitecturas como ASP.NET MVC tienen una funcionalidad incorporada para manejar JSON.stringify como contentType, mi situación es un poco diferente, por lo que tal vez esto pueda ayudar a alguien en el futuro. ¡Sé que me habría ahorrado horas!
Dado que mis solicitudes http están siendo manejadas por una API CGI de IBM (entorno AS400) en un subdominio diferente, estas solicitudes son de origen cruzado, de ahí el jsonp. De hecho, envío mi ajax a través de objetos de JavaScript. Aquí hay un ejemplo de mi 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
no tiene relación con cómo se envían los datos. Simplemente especifica cuál es el tipo de datos que espera que devuelva la llamada. Si desea indicar al servidor cuál es el tipo de datos que está especificando en ladata
propiedad que necesita para establecer unacontentType
propiedad similar acontentType: "application/json"