【问题标题】:How can I get response ajax correctly?如何正确获取响应 ajax?
【发布时间】: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。
  • 如果你得到一个循环引用,那么你需要看看是什么原因造成的。这可能是您的实际问题。

标签: javascript c# jquery asp.net-mvc


【解决方案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#)——但这应该是一个评论,因为它实际上不是一个答案。
猜你喜欢
  • 1970-01-01
  • 2013-04-04
  • 2018-05-23
  • 2017-05-09
  • 1970-01-01
  • 2016-10-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多