Полагаю, вы можете сделать свои звонки родовыми (причина, как указывает Мардук)
Чтобы справиться с этим и сделать общие вызовы (работает с data и data.d), я использую следующее в моих вызовах ajax (с моим материалом asp.net), чтобы он работал как с более старыми, так и с новыми сервисами:
dataFilter: function(data)
{
var msg;
if (typeof (JSON) !== 'undefined' &&
typeof (JSON.parse) === 'function')
msg = JSON.parse(data);
else
msg = eval('(' + data + ')');
if (msg.hasOwnProperty('d'))
return msg.d;
else
return msg;
},
РЕДАКТИРОВАТЬ: ЕСЛИ это действительно ноль, а НЕ "неопределенный", то проблема междоменной области может быть здесь.