Jquery 未定义在ajax post期间不是一个函数
我每页有一个表单,我已经多次成功地测试了这段代码,但现在由于某种原因,我不断遇到以下错误: 未定义不是一个函数 这会将我的表单值从我的MVC视图发布到控制器,如果处理时出错Jquery 未定义在ajax post期间不是一个函数,jquery,ajax,asp.net-mvc-4,Jquery,Ajax,Asp.net Mvc 4,我每页有一个表单,我已经多次成功地测试了这段代码,但现在由于某种原因,我不断遇到以下错误: 未定义不是一个函数 这会将我的表单值从我的MVC视图发布到控制器,如果处理时出错 $("form").submit(function () { $.post($(this).attr("action"), $(this).serialize(), function (data) { if (!data.IsOK) { $("#
$("form").submit(function () {
$.post($(this).attr("action"), $(this).serialize(), function (data) {
if (!data.IsOK) {
$("#modalTitle").html(data.Title);
$("#modalMessage").html(data.Message);
$("#modalDetail").html(data.Error).hide(); // error occurs here
$("#modalDialog").css("display", "block");
$("#modalBackground").css("display", "block");
}
else {
window.location.href = '@Url.Content("~/")';
}
return;
});
return false;
});
其想法是生成一个模式对话框,告诉用户“出了什么问题”,并提供可用于跟踪问题的信息。但是,在许多情况下,用户无法看到#modalDetail
div,因为它将包含只有sysadmin用户才应该看到的堆栈跟踪(data.Error)
我有一种感觉,如果data.error为空,则会发生此错误。但在我看来,该div的html仅会设置为空字符串值或等效值。如果
data.error=undefined
所以要避免这种情况,就这样做
$(“#modalDetail”).html(data.Error==未定义?”:data.Error.hide()代码>
这只是检查错误
是否未定义,如果未定义,则添加空字符串。尝试控制台.log(data)
以确保所有变量都已设置。如果(!data.IsOK){
似乎有点奇怪。如果data.IsOK
为true,则使用如果(!data.IsOK)填充数据{
您确定数据.Title
等未定义。看起来像数据。错误可能未定义。同时执行隐藏()
不会阻止用户看到它。他们可以只查看普通的HTML,因此如果这是用户不应该看到的真正的私人信息。甚至不要返回该值,它不是系统管理员。尽管我猜错误消息并不太重要。