tôi sử dụng ASP.NET MVC để gửi JSON từ jQuery, và nhận được một số JSON trở lại, sử dụng ít chức năng này thư viện:jQuery bài JSON thất bại khi trở về null từ ASP.NET MVC
(function($) {
$.postJson = function(url, data) {
return $.ajax({
url: url,
data: JSON.stringify(data),
type: 'POST',
dataType: 'json',
contentType: 'application/json; charset=utf-8'
});
};
})(jQuery);
Vì vậy, rõ ràng là tôi sẽ gọi này như:
$('#button').click(function() {
$.postJson('/controller/action', { Prop1: 'hi', Prop2: 'bye' })
.done(function(r) { alert('It worked.'); })
.fail(function(x) { alert('Fail! ' + x.status); });
});
ASP.NET MVC 3 và ASP.NET MVC 4 hỗ trợ bên gửi mọi thứ (trước khi bạn cần mở rộng ASP.NET MVC để xử lý việc gửi JSON), nhưng sự cố tôi đang chạy vào là trên sự trở lại. Trên điều khiển tôi thường trở về null về cơ bản nói "Thành công, không có gì khác để nói," như:
[HttpPost]
public JsonResult DoSomething(string Prop1, string Prop2)
{
if (doSomething(Prop1, Prop2)
return Json(null); // Success
return Json(new { Message = "It didn't work for the following reasons" });
}
tôi sử dụng mô hình này thường xuyên và nó hoạt động tốt - thành công/thực hiện cuộc gọi lại của tôi được gọi và tất cả là tốt. Nhưng gần đây tôi đã nâng cấp ASP.NET MVC và jQuery, và nó ngừng hoạt động - thay vì gọi lại không thành công của tôi là nhận được gọi bất cứ khi nào tôi return Json(null);
. Hơn nữa, tôi đã kiểm tra phản hồi và việc lấy lại statusCode thực tế là 200, do đó máy chủ không bị lỗi - jQuery chỉ nói nó là vậy.
BTW toàn cầu '$ (document) .ajaxError ...' show trong 'exception.message':" ** Kết thúc đầu vào không mong đợi ** "khi' Json (null) 'được trả về (chỉ cần đề cập đến nó, nó không giúp tôi tìm ra lý do cho vấn đề). – Slauma