![](/img/trans.png)
[英]jquery ajax returns success when directly executed, but returns error when attached to button, even though server response is 200 OK
[英]MVC jQuery ajax GET returns success even on error
我的项目有一个ajax get函数:
$('#DetailMaxGuest').change(function () {
var result = $('#DetailMaxGuest').val();
var resultparse = parseInt(result);
var resultid = $('#resultid').val();
$('#DetailMaxGuest option:selected').val(result).attr('selected', 'selected');
var message = {'resultid':resultid, 'data':resultparse};
$.ajax({
type: 'GET',
url: '/Product/GetMaxGuest',
data: message,
success: function (data, success) {
$('#reservation-result').html(success).fadeIn(2000);
},
error: function (data, error) {
$('#reservation-result').html(error).fadeIn(2000);
}
});
});
和我的控制器;
public JsonResult GetMaxGuest(int? data,Guid? resultid)
{
var appid =resultid;
System.Threading.Thread.Sleep(500);
var firstOrDefault = _bb.Aparts.FirstOrDefault(m => m.ApartID == appid);
if (firstOrDefault != null)
{
var maxguest = firstOrDefault.ApartMaxGuest;
if (data > maxguest)
{
return Json(new { error=true, msg="Basarisiz" },JsonRequestBehavior.AllowGet);
}
if (data <= maxguest)
{
return Json(new { success = true, msg = "Basarili" },JsonRequestBehavior.AllowGet);
}
}
return Json(new { error = true, msg = "Basarisiz" }, JsonRequestBehavior.AllowGet);
}
并开始传输返回错误:
{"error":true,"msg":"Basarisiz"}
但是在我的页面上写出success
。 为什么我看不到错误消息?
将数据类型设置为json
:
$.ajax({
type: 'GET',
url: '/Product/GetMaxGuest',
data: message,
dataType: 'json',
success: function (data) {
if (data.error) {
$('#reservation-result').html(data.msg).fadeIn(2000);
} else {
$('#reservation-result').html('success').fadeIn(2000);
}
},
error: function (data, error) {
// you don't have to do this
// $('#reservation-result').html(error).fadeIn(2000);
}
});
返回包含错误消息的json不会使您进入错误回调
您需要这样做-
$.ajax({
type: 'GET',
url: '/Product/GetMaxGuest',
data: message,
dataType:'json',
success: function (data) {
if(!data.error){
$('#reservation-result').html("Success :" + data.msg).fadeIn(2000);
}
else{
$('#reservation-result').html("Error :" +data.msg).fadeIn(2000);
}
},
error: function (data, error) {
}
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.