【问题标题】:getJSON allways goes to fail, MVC .NETgetJSON 总是失败,MVC .NET
【发布时间】:2016-10-18 16:14:43
【问题描述】:

我正在尝试从 ASP.Net MVC 中的控制器获取 JSON。 $.getJSON 总是转到 fail 函数。我的控制器工作正常。对象带着正确的数据到达,并且构建了 JSON ok,没有不正确的数据。

public JsonResult Rentabilidad(ObtenerRentabilidadViewModel data)
{
    var JsonChart = Json(RentabilidadManager.Rentabilidad(data.DTInicio, data.DTFinal), JsonRequestBehavior.AllowGet);
    return JsonChart;
}

向我的控制器发出请求后,JSON 直接跳转到 fail 部分。

$.getJSON('@Url.Action("Rentabilidad")', { 
    Inicio: fechaInicio, 
    Final: fechaFinal 
}, function (data) {
    console.log(data);
}).fail(function (jq,msg,error) {
    console.log(jq);
    console.log(msg);
    console.log(error);

    $("#chartdiv").html('<div class="alert alert-danger col-md-12" id="alert">Error! Vuelva a intentarlo. </div>');
    Desvanecer3segundos("#alert");
});

控制台显示:

Object {readyState: 4, responseText: "[{"Ingresos":0,"Egresos":1334,"Proyecto":"proy1","…2,"Rentabilidad":Infinity,"BulletSize":Infinity}]", status: 200, statusText: "OK"}
Index:114 parsererror
Index:115 SyntaxError: Unexpected token N in JSON at position 172(…)

谢谢!

【问题讨论】:

  • 如果请求响应的不是2xx HttpStatusCode,则fail 被命中,这意味着您的操作有错误,或者响应格式不正确,在这种情况下不太可能.检查控制台以了解正在生成的确切错误
  • 如果你在fail(jqXHR, errText, error) 中添加一些参数,你可能会明白原因
  • 我会发布我得到的东西
  • 它返回 200 响应。你确定它会失败吗?
  • 100% 因为它显示 div 错误

标签: c# jquery .net json asp.net-mvc


【解决方案1】:

您解析了一些无效的 JSON:

"Proyecto":"proy1","…2,"Rentabilidad"

注意...2 前面有一个双引号,但后面没有双引号。此外,它没有附属的属性名称。

【讨论】:

  • 在收到客户端响应之前调试您的控制器并查看您的对象是什么
【解决方案2】:

一些设置为“Inifint”和“NaN”的值。

谢谢大家!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-08-10
    • 1970-01-01
    • 2014-01-31
    • 2018-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-06
    相关资源
    最近更新 更多