Html ajax成功中的函数调用不是';行不通

Html ajax成功中的函数调用不是';行不通,html,ajax,html-table,Html,Ajax,Html Table,我在ajax的success函数中有一个函数调用。问题是,我没有得到任何迹象表明外部函数实际上正在被调用。我甚至还向它添加了一个警报,以确保它没有被正确调用。我对html和ajax相当陌生,因此非常感谢您的帮助 AJAX功能: <script> $(function() { $('.update_btn').click(function() { var $row = $(this).closest("tr"), $tds = $row.fi

我在ajax的success函数中有一个函数调用。问题是,我没有得到任何迹象表明外部函数实际上正在被调用。我甚至还向它添加了一个警报,以确保它没有被正确调用。我对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>

$(函数(){
$('.update_btn')。单击(函数(){
var$row=$(this).tr,
$tds=$row.find(“td:nth-child(1)”;
var file_name=$tds.text()
$row.remove()
$.ajax({
url:“/数据库”,
数据:{f:文件名},
键入:“POST”,
成功:功能(msg){
纽罗(味精);
}
});
});
});
外部功能:

  <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>

函数newRow(msg){
警报(消息状态)
开关(消息状态){
“安全”案例:
var tr=''+
''+msg.file_name+'':''+msg.status+'':'':+msg.time+'';
$('c#u table')。追加(tr);
打破
“威胁”一案:
var tr=''+
''+msg.file_name+'':''+msg.status+'':'':+msg.time+'';
$('c#u table')。追加(tr);
打破
案例“已排队”:
var tr=''+
''+msg.file_name+'':''+msg.status+'':'':+msg.time+'';
$('p#u table')。追加(tr);
打破
}
}

问题是外部函数中的语法错误。在开关情况下设置
var tr
时,存在一个
,其中
+
应该是。我真的不知道那是怎么发生的

固定代码:

  <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>  

函数newRow(msg){
警报(消息状态)
开关(消息状态){
“安全”案例:
var tr=''+''+msg.file_name+''+''+msg.status+''+''+msg.time+'';
$('c#u table')。追加(tr);
打破
“威胁”一案:
var tr=''+''+msg.file_name+''+''+msg.status+''+''+msg.time+'';
$('c#u table')。追加(tr);
打破
案例“已排队”:
var tr=''+''+msg.file_name+''+''+msg.status+''+''+msg.time+'';
$('p#u table')。追加(tr);
打破
}
}

您在ajax调用中的状态是否为200?您可以在浏览器的javascript控制台>网络选项卡中进行检查。这是打开浏览器调试工具的最佳时机。使用它们,您可以调试、观察AJAX HTTP请求/响应等。调试控制台上有任何错误吗?是否发出了AJAX请求?服务器的响应是什么?(注意:如果响应是错误代码,那么AJAX代码没有错误处理程序。)如果服务器返回您期望的结果,请在
success
处理程序中放置调试断点。
msg
中有什么内容?是否调用该函数?发生了什么事?@Kumar是的,我的状态是200。我已经在成功功能中添加了一个警报,并确认我在中得到了适当的响应msg@EdselNorwood:那么正在调用函数,并且该值确实包含您期望的内容?然后。。。有什么问题吗?