Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# jquery AJAX get遇到有效json响应的未定义错误_C#_Jquery_Ajax_Get - Fatal编程技术网

C# jquery AJAX get遇到有效json响应的未定义错误

C# jquery AJAX get遇到有效json响应的未定义错误,c#,jquery,ajax,get,C#,Jquery,Ajax,Get,团队-我是jquery新手,面临着一个给出未知错误的有效json响应的问题 基于Web的C#MVC和后端数据库是SQL Server。我正在使用EF 如果我使用以下代码: IQueryable dbResult = dbContext.ParentRecord.Where(row => row.Id ==id).Include(row => row.ChildRecord); if (dbResult != null) { return Ok(dbResult) } 我已经验证了

团队-我是jquery新手,面临着一个给出未知错误的有效json响应的问题

基于Web的C#MVC和后端数据库是SQL Server。我正在使用EF

如果我使用以下代码:

IQueryable dbResult = dbContext.ParentRecord.Where(row => row.Id ==id).Include(row => row.ChildRecord);

if (dbResult != null) { return Ok(dbResult) }
我已经验证了HTTP状态代码是200,子记录填充正确,并测试了该结构是否为有效的json

但是,上述函数在get函数中遇到错误。如果删除Include,则ParentRecord.ChildRecord为null,get有效

没有关于xhr对象中错误的详细信息。它进入错误函数,响应未定义。(代码如下)

请注意:我试过使用fail函数,数据类型:“json”, 内容类型:“application/json,charset=UTF-8”组合

$.ajax({
url: _url,
cache: false,
error: function (xhr, status, error) {
alert("error : " + xhr.responseText);
}
}).done(function (data) {

alert("inside " + data);
})

有人能告诉我错误的根本原因吗?或者帮助我获得有关实际错误的更多详细信息?

包括成功,例如:

cache: false, 
success: function(reponse){
//parse your serverside code from resonse 
}
我希望这对你有用

另外,在javascript/jquery中,执行会在代码中发现错误的那一行停止。 在ajax中,末尾有一个额外的“逗号”。我要大胆一点

.ajax({
url: _url,
cache: false,
error: function (xhr, status, error) {
alert("error : " + xhr.responseText);
}, // <=== there's extra comma here. When comma is mentioned it expects for another parameter as you're passing an object. Remove it. 
}).done(function (data) {

alert("inside " + data);
})
.ajax({
url:_url,
cache:false,
错误:函数(xhr、状态、错误){
警报(“错误:+xhr.responseText”);

},//这个问题可以追溯到C#中的Fluent API。显然,我没有意识到jquery不仅需要一个有效的json结构,还需要用相应的类验证json响应

不幸的是,jquery get error没有向我提供有关错误的任何详细信息,这使得异常很难检测(特别是像我这样的新手)

在这种情况下,类的验证失败,因为它在响应结构中需要一个ChildRecord.ParentRecord=null字段。此异常是由于Fluent API导航属性定义造成的,其中ChildRecord类具有以下声明:

[ForeignKey("PID")]
public virtual ParentRecord ParentRecord { get; set; }
解决方法是将ChildRecord.ParentRecord显式设置为null并确保将其传递到响应中,或者更改Fluent API定义


我选择了第二个选项。

包括
success
例如:
cache:false,success:function(response){//parse your serverside code from resonse}
。我希望这对你有用谢谢你指出。逗号是文章中的一个输入错误。请忽略。从文章中删除了逗号。我也尝试过成功组合。@Cadenza如果你说你收到了200个代码,并且确定你发送了一些数据,并且已经发送了。那么你必须调试“成功”功能n、 在success函数中添加
debugger;
,并在调用此ajax之前按浏览器上的
F12
进行调试,查看得到的结果。它没有进入success函数。success:function(data){console.log(data);}hmm call
$(ajax){()}
?它甚至没有在任何一行给出错误?@Cadenza看看这是否有帮助