У меня есть метод контроллераПочему POST без параметров не возвращает JSON
[HttpPost]
public ActionResult GetUserData()
{
return Json(GetCurrentUser());
}
Я звоню ему $ .ajax() через метод, как это:
ServerCall: function (method, args, callback) {
$.ajax({
type: 'POST',
url: method,
data: JSON.stringify(args),
contentType: 'application/json;charset=utf8',
dataType: 'json',
success: function (result) {
if (callback) {
callback(result);
}
},
error: function (err) {
}
});
}
с призывом быть :
ServerCall('GetUserData', null, function(data){
});
Как это, когда я делаю этот вызов, $ .ajax возвращается с успехом, но «данных» равно нулю. Отладка, responseText пуст. На стороне сервера вызывается GetUserData, и он возвращает правильно отформатированный объект Json (я дошел до того, что создал свой собственный JSON ActionResult и подтвердил, что данные действительно записываются в поток ответов.
Если добавить фиктивный параметр для метода на стороне сервера:
[HttpPost]
public ActionResult GetUserData(string temp)
{
return Json(GetCurrentUser));
}
все работает отлично Браузер IE8 Мой вопрос, может кто-нибудь объяснить, почему это происходит
UPDATE:..?
Примечание обходной путь ниже: все еще заинтересованы в том, чтобы знать основную причину.
Еще проблема в IE9 –