如何正确获取响应 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?的主要内容,如果未能解决你的问题,请参考以下文章
在 Spring Boot Web Thymeleaf 应用程序中进行 AJAX 调用的正确方法是获取 getOutputStream() 已经为此响应调用