【发布时间】:2018-06-21 02:01:58
【问题描述】:
我在 ajax 的成功函数中有一个函数调用。问题是我没有得到任何迹象表明实际上正在调用外部函数。我什至向它添加了一个警报,以确保它没有被正确调用。我对 html 和 ajax 还很陌生,因此非常感谢任何帮助。
AJAX 功能:
<script>
$(function() {
$('.update_btn').click(function() {
var $row = $(this).closest("tr"),
$tds = $row.find("td:nth-child(1)");
var file_name = $tds.text()
$row.remove()
$.ajax({
url: '/database',
data: {f : file_name},
type: 'POST',
success: function(msg) {
newRow(msg);
}
});
});
});
</script>
外部函数:
<script>
function newRow(msg) {
alert(msg.status)
switch (msg.status) {
case 'Safe':
var tr = '<tr class="c_table">' +
'<td>' + msg.file_name + '</td>' : '<td>' + msg.status + '</td>' : '<td>' + msg.time + '</td></tr>';
$('#c_table').append(tr);
break;
case 'Threat':
var tr = '<tr class="c_table">' +
'<td>' + msg.file_name + '</td>' : '<td>' + msg.status + '</td>' : '<td>' + msg.time + '</td></tr>';
$('#c_table').append(tr);
break;
case 'Queued':
var tr = '<tr class="p_table">' +
'<td>' + msg.file_name + '</td>' : '<td>' + msg.status + '</td>' : '<td>' + msg.time + '</td></tr>';
$('#p_table').append(tr);
break;
}
}
</script>
【问题讨论】:
-
您在 ajax 调用中的状态是否为 200?您可以在浏览器的 javascript 控制台 > 网络选项卡中进行检查。
-
这是打开浏览器调试工具的好时机。有了它们,您可以调试、观察 AJAX HTTP 请求/响应等。调试控制台上是否有任何错误?是否发出了 AJAX 请求?服务器的响应是什么? (注意:如果响应是错误代码,那么您的 AJAX 代码没有错误处理程序。)如果服务器返回您期望的内容,请在您的
success处理程序中放置一个调试断点。msg中有什么内容?函数被调用了吗?会发生什么? -
@Kumar 是的,我的状态是 200。
-
我在成功函数中添加了一个警报,并确认我在 msg 中得到了适当的响应
-
@EdselNorwood:所以函数 is 被调用并且值 does 包含您所期望的吗?那么……有什么问题?
标签: html ajax html-table