首页 新闻 搜索 专区 学院

jquery-1.7.1突然报错:Uncaught TypeError: Cannot read property 'replace' of undefined

0
悬赏园豆:100 [已解决问题] 解决于 2020-04-29 14:00
jquery-1.7.1.js 报错:Uncaught TypeError: Cannot read property 'replace' of undefined
一、运行环境

1.1 Visual Studio Community 2019;

1.2 SQL Server 2019;

1.3 Windows 10 专业版;

二、问题描述

2.1 基本MVC项目;

2.2 View中发起post请求之后,Controller中可以正常获取到数据库的数据,但是Controller调用jquery中相关方法返回的Json数据无法再次回传到View中;

2.3 问题出现后,以前备份的代码全都显示同样的错误;

2.4 替换jquery、重启电脑后,错误没有改变。

三、关键代码段

View:

var id = rows[0].ID;
$.post("/UserInfo/ShowEditInfo", { "id": id }, function (data) {
 $("#txtUName").val(data.UName);
 $("#txtUPwd").val(data.UPwd);
 $("#txtRemark").val(data.Remark);
 $("#txtSort").val(data.Sort);
 $("#txtSubTime").val(ChangeDateFormat(data.SubTime));
 $("#txtDelFlag").val(data.DelFlag);
 $("#txtId").val(data.ID);
});

Controller:

public ActionResult ShowEditInfo()
{
   int id = int.Parse(Request["id"]);
   var userInfo = UserInfoService.LoadEntities(u => u.ID == id).FirstOrDefault();
   return Json(userInfo, JsonRequestBehavior.AllowGet);
}
四、代码调试和报错截图
  1. Controller中可以获取到userInfo信息,调用jquery返回Json数据时失败,错误截图如下图1;
  2. 出现这个问题后,以前备份的代码也全部报同样的错误。

​ 图1 Web端报错信息

要看报错的堆栈信息呀,点进去Index:307应该跳转到这一句·$("#txtSubTime").val(ChangeDateFormat(data.SubTime));,从错误信息可以看出,应该是data.SubTime为null造成的。

。淑女范erり 3个月前

@。淑女范erり: 感谢您的回复。
经确认,data.SubTime确实是为null。
我屏蔽了这一句
$("#txtSubTime").val(ChangeDateFormat(data.SubTime));
但是现在数据依然没有显示出来数据,web端也没有错误出现。
进一步确认后,发现data没有数据。

Jeremy.Wu 3个月前

@Jeremy.Wu: data没有数据那可能是server端的问题了,你debug跟踪一下看看。

。淑女范erり 3个月前
< >
分享
最佳答案
0

看起來data裡的屬性全都是undefined
建議你確認API回傳內容及屬性名稱
也可以在瀏覽器開發者工具的網路頁籤中,看看回傳的數據格式

收获园豆:80
RosonJ | 老鸟四级 |园豆:3608 | 2020-04-29 10:40

感谢您的回复!
此处确实有一个错误,INET_E_REDIRECT_FAILED,如下:
这意味什么,难道是我的计算机缺少某些文件,或者需要修改某个配置信息?
顺便说一下:我之前的代码本来可以正常显示的,现在拿来测试显示的结果和这个一样(以前的代代码未做任何修改)。

Jeremy.Wu | 园豆:48 (初学一级) | 2020-04-29 11:06

@Jeremy.Wu:
意思是ShowEditInfo 這個API出錯了
要轉調到自訂錯誤頁Error.html

請檢查ShowEditInfo
int.Parse(Request["id"]); < 這裡是否轉型錯誤
或是
UserInfoService.LoadEntities(u => u.ID == id).FirstOrDefault(); < 這段查詢是否發生例外

RosonJ | 园豆:3608 (老鸟四级) | 2020-04-29 11:13

@RosonJ:
感谢您的回复!
经过再次验证,C里面的userInfo对象数据获取正常,应该是在return Json这里出现了问题。
请问是否有什么建议?谢谢

Jeremy.Wu | 园豆:48 (初学一级) | 2020-04-29 12:06

@Jeremy.Wu:
return Json的方式沒有錯
但你用的是post,第二個參數可以不用,雖然不太確定有沒有影響

RosonJ | 园豆:3608 (老鸟四级) | 2020-04-29 13:06

@RosonJ:
感谢您的回复!
通过查看日志,找出了错误原因。
序列化成Json格式时出错了,导航属性导致了死循环。

序列化类型为“System.Data.Entity.DynamicProxies.R_UserInfo_ActionInf_F2599E3F088BEBAADCFD8B2B6E5E9F2D7CCACC475AA1FDDC879B974DC462BF12”的对象时检测到循环引用

Jeremy.Wu | 园豆:48 (初学一级) | 2020-04-29 13:41

@Jeremy.Wu:
沒見過的情況
可以看看你的userInfo class嗎?好奇

RosonJ | 园豆:3608 (老鸟四级) | 2020-04-29 13:44

@RosonJ:
UserInfo和RoleInfo表之间存在多对多的关系。

Jeremy.Wu | 园豆:48 (初学一级) | 2020-04-29 13:55

@Jeremy.Wu:
原來是這樣,學習了

RosonJ | 园豆:3608 (老鸟四级) | 2020-04-29 14:08
其他回答(1)
0

1、 检查下SubTime 是不是 为null
2、 检查返回json 有没有SubTime 属性, 大小写, 是不是一样。

收获园豆:20
Tom.汤 | 园豆:1978 (小虾三级) | 2020-04-28 12:55

感谢您的回复!
根据您的提示,经过修改View中的代码,测试后显示如下,个人感觉还是jquery的问题,有点奇怪。
请帮忙再分析分析,感谢!



支持(0) 反对(0) Jeremy.Wu | 园豆:48 (初学一级) | 2020-04-29 09:35

@Jeremy.Wu: undefined 是没有 Replace 方法的

支持(0) 反对(0) Tom.汤 | 园豆:1978 (小虾三级) | 2020-05-08 11:46
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册