ASP.net:AJAX结果未启动

时间:2018-08-21 17:38:40

标签: javascript ajax asp.net-mvc

我认为这对您来说很奇怪,因为我为此不知所措。在表格中的屏幕上,我点击了一个链接,该链接触发了javascript / ajax请求。我在另一个屏幕上有类似的代码,当它进入ajax调用的成功部分并在该调用的成功部分中运行代码时,它可以完美地工作。由于某种原因,尽管我似乎无法使它正常工作,并且在chrome中调试它时,我失去了断点,而且它似乎从未进入Ajax调用的成功部分。

@section scripts{
<script>

    // Get the bond ID Data from the row selected and return that to the program.
    function getIDData(el) {

        var ID = $(el).closest('tr').children('td:first').text();
        var iddata = {
            'ID': ID
        }

        console.log(iddata);
        return iddata;
    }

    // Submit the data to a function in the .cs portion of this razor page.
    $('.updatelink').click(function () {
        var bondid = JSON.stringify(getIDData(this));
        $.ajax({
            url: '/Maintenance/Bond_Maint?handler=UpdateandReloadData',
            beforeSend: function (xhr) {
                xhr.setRequestHeader("XSRF-TOKEN",
                    $('input:hidden[name="__RequestVerificationToken"]').val());
            },
            type: 'POST',
            dataType: 'json',
            data: { bondid: bondid },
            success: function (result) {
                if (result.pass != undefined) {
                    document.forms[0].submit();
                }
            }, 
        });
    });
</script>
}

正在调用的ASP.net代码对数据库进行更新,然后将包含成功的变量作为消息传递回去。

 //-------------------------------------------------------------------------------
    // Try to get and insert the data from a selected row and copy it 
    //-------------------------------------------------------------------------------     
    public ActionResult OnPostUpdateandReloadData(string bondid)
    {            
        return new JsonResult(new { pass = "Success" });
    }

除了通过浏览器调试我的其他代码外,我不确定其他如何描述我的问题,这似乎与该代码采用的路径不同,我无法理解原因。作为参考,我的其他代码如下:

@section scripts{
<script>

// Get the offender ID Data from the row selected and return that to the program.
function getIDData(el) {        

    var ID = $(el).closest('tr').children('td:first').text();
    var iddata = {
        'ID': ID
    }        

    console.log(iddata);
    return iddata;
}

// Submit the data to a function in the .cs portion of this razor page.
$('.copybtn').click(function () {
    var offenderid = JSON.stringify(getIDData(this));
    $.ajax({
        url: '/Copy_Old_Account?handler=CopyData',
        beforeSend: function (xhr) {
                        xhr.setRequestHeader("XSRF-TOKEN",
                                $('input:hidden[name="__RequestVerificationToken"]').val());
                },
        type: 'POST',
        dataType: 'json',            
        data: { offenderid: offenderid },    
        success: function (result) { 
            if (result.path != undefined) {
                window.location.replace(result.path);
            }
        }, 
    });
});
</script>
}

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

好的,首先,谢谢大家回答我的问题。弗兰克·弗里特(Frank Writte)和阿尔弗雷德(Alfred)通过在网络标签中查找我的通话状态为我指明了正确的方向。我发现我的要求被取消了。在调查之后,我发现这篇文章What does status=canceled for a resource mean in Chrome Developer Tools?有FUCO的回答,它给了我我需要做的事情。显然我需要添加event.preventDefault();在我的ajax调用之前,突然我的代码工作了。我不确定我是否完全理解为什么这样做,但是我不能抱怨结果。再次感谢大家的帮助。整个早晨,这件事一直困扰着我。