如何正确获取响应 ajax?

Posted

技术标签:

【中文标题】如何正确获取响应 ajax?【英文标题】:How can I get response ajax correctly? 【发布时间】:2019-07-13 07:38:10 【问题描述】:

我正在学习 C# 和 jQuery AJAX。我目前遇到一个问题,我无法让 Ajax 正确运行,我不知道为什么。

这是错误日志:

加载资源失败:服务器响应状态为 500(内部服务器错误)

这是我的代码:

HTML

<button class="btn btn-primary btn-edit" id="SubjectId" id1=" 
StudentId" >Edit</button>

javascript AJAX 代码:

$('.btn-edit').off('click').on('click', function () 
        $('#editModal').modal('show');
        var id = parseInt($(this).attr('id'));
        var id1 = parseInt($(this).attr('id1'));
        ExamsController.LoadDetail(id, id1);
    );

LoadDetail: function (id, id1) 
    $.ajax(
        url: '/Exams/LoadDetail',
        type: 'GET',
        data: 
            id : id,
            id1 : id1
        ,
        dataType: 'json',
        success: function (response) 
            console.log(response.status);
            if (response.status == true) 
                var data = response.data;
                $('#txtSubjectName').val(data.Subject.SubjectName);
                $('#txtStudentName').val(data.Student.StudentName);
                $('#numScore').val(data.Score);
             else 
                alert("Error!")
            
        ,
        Error: function (err) 
            console.log(err);
        
    );
,

和考试控制器

[HttpGet]
public JsonResult LoadDetail(int id, int id1)

    bool status = false;
    Exam exam = new Exam();
    exam = db.Exams.Find(id, id1);
    status = true;

    return Json(new
    
        data = exam,
        status = status
    , JsonRequestBehavior.AllowGet);

【问题讨论】:

如果您将 url 复制/粘贴到浏览器,是否会出现错误? 它仍然错误,我想是因为我在 url 中没有参数 对,如果你去掉浏览器中的 500 错误,你的 ajax 就可以工作了。 /Exams/LoadDetail 这是您尝试使用的完整 URL 吗?还要检查开发者工具 --> 网络选项卡,看看你是否点击了正确的 URL。 如果你得到一个循环引用,那么你需要看看是什么原因造成的。这可能是您的实际问题。 【参考方案1】:

内部服务器错误表示您在 C# 脚本中有错误,请仔细检查错误日志。 而且您的代码也不是最干净的,缺少分号。 尝试添加分号,添加名称到函数,并检查错误日志,这很有用,我们可以做出更好的答案。 也许用分号试试这个代码:):

$('.btn-edit').off('click').on('click', function () 
        $('#editModal').modal('show');
        var id = parseInt($(this).attr('id'));
        var id1 = parseInt($(this).attr('id1'));
        ExamsController.LoadDetail(id, id1);
    );

LoadDetail: function (id, id1) 
    $.ajax(
        url: '/Exams/LoadDetail',
        type: 'GET',
        data: 
            id : id,
            id1 : id1
        ,
        dataType: 'json',
        success: function (response) 
            console.log(response.status);
            if (response.status == true) 
                var data = response.data;
                $('#txtSubjectName').val(data.Subject.SubjectName);
                $('#txtStudentName').val(data.Student.StudentName);
                $('#numScore').val(data.Score);
             else 
                alert("Error!");
            
        ,
        Error: function (err) 
            console.log(err);
        
    );
,

谢谢!

【讨论】:

所有好的建议(或者看起来是这样,虽然我不懂 C#)——但这应该是一个评论,因为它实际上不是一个答案。

以上是关于如何正确获取响应 ajax?的主要内容,如果未能解决你的问题,请参考以下文章

ajax方法POST后如何获取JSON响应

在 ajax 请求中获取不正确的 json 响应

如何从JQuery响应正确获取数据

在 Spring Boot Web Thymeleaf 应用程序中进行 AJAX 调用的正确方法是获取 getOutputStream() 已经为此响应调用

获取带有 AJAX 错误的服务器响应?

如何从 jQuery.ajax 获取响应状态码?