ajax调用不会触发断点但会继续成功

时间:2014-06-06 06:04:38

标签: javascript jquery ajax asp.net-mvc

我有这个ajax电话。这是我第一次遇到这个问题。首先,我的行动的断点没有被击中。其次,正在执行成功功能。第三,我的storeList / data的值是整个身体内容的整个代码。这可能是因为我找不到行动造成的。

$.ajax({
  type: 'POST',
  url: '/reports/GetStoreFranchiseList?franchiseId=' + franchiseId,
  success: function (storeList) {
    console.log(storeList);
    var appendStr = "<li><a href='#' onclick=changeStore('All', 'All')>All</a></li>";
    // $.each(storeList, function (k, v) {
    //   console.log(v);
    //   appendStr += "<li><a href='#' onclick=changeStore('" + v.Id + "','" + v.StoreName + "')>" + v.StoreName + "</a></li>";
    // });
    console.log(appendStr);
    $(".rptStoreDdl").html(appendStr);
    $("#rptStoreDdlDv").removeClass().addClass("btn-group");
  }
});

当我尝试取消注释每个函数时,我收到此错误:Uncaught TypeError: Cannot use 'in' operator to search for '21748' in #<error>

显然因为数据错误。任何想法家伙?谢谢!

编辑:

尝试通过fiddler访问它,我得到了这个:/Error/NotFound?aspxerrorpath=/reports/GetStoreFranchiseList

这会触发我找不到的客户错误。我真的不确定为什么我的行动没有找到。

控制器操作:

[InPrivate]
public class ReportsController : Controller
{
    [HttpGet]
    public JsonResult GetStoreFranchiseList(string franchiseId)
    {
        var data = new List<Store>();

        if(WebUser.Franchisees != null && WebUser.Franchisees.Count() > 0)
        {
            data = WebUser.Franchisees.FirstOrDefault(a => a.Id == franchiseId).Stores;
        }

        return Json(data, JsonRequestBehavior.AllowGet);
    }
}

2 个答案:

答案 0 :(得分:1)

很可能会提出一个无声的例外。我也遇到了同样的问题。值得注意的是,并非所有异常都会触发运行时错误,从浏览器/客户端可能看起来已经返回了有效的返回类型。在我的例子中,我能够使用Visual Studio的Intellitrace功能来嗅出以下静默异常:

“JSON请求太大而无法反序列化”

这给了我通过其他Stack Overflow response

解决问题所需的线索

我建议尝试使用Intellitrace附带的Visual Studio的Ultimate版本来查看是否有类似的异常干扰了您的服务器端代码,并最终欺骗客户端认为返回了有效的响应。

祝你好运

答案 1 :(得分:0)

尝试像这样指定网址:

url: '../Reports/GetStoreFranchiseList?franchiseId=' + franchiseId,

OR

url: '@Url.Action("GetStoreFranchiseList","Reports")' + '?franchiseId=' + franchiseId,