Поскольку вы не передаете никаких данных, вам все равно следует добавить параметр data и передать пустой объект JSON.
Отправляя пустой объект JSON, jQuery правильно отправит contentType, который вы определили в вызове $ .ajax. Это странная причуда jQuery, которая на самом деле не была объяснена.
Добавьте следующий параметр:
data: "{}"
Итак, ваш звонок должен выглядеть так:
$.ajax({
type: "POST",
url: "Default.aspx/getLastCallData",
data: "{}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(msg) {
alert(msg.d);
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
alert('Couldnt get call data');
}
});