首页 > 解决方案 > Ajax 调用未按预期执行

问题描述

我有一个 ajax 调用没有按我的预期执行。我从浏览器收到“jquery-1.10.2.js:8157 Uncaught TypeError: Cannot read property 'FileGuid' of undefined”的错误。在 GetExportData 和 Download 函数的开头,我的 CS 文件中都有断点,但它们中的任何一个都没有被命中。

function generateExportFile() {
        var datefrom = $('#tab_MHSubpay_datefrom').ejDatePicker("getValue");
        var dateto = $('#tab_MHSubpay_dateto').ejDatePicker("getValue");
        var show = $('#tab_MHSubpay_show').ejDropDownList("getSelectedValue");
        var service = $('#tab_MHSubpay_serviceType').ejDropDownList("getSelectedValue");
        var phase = $('#tab_MHSubpay_phaseCode').ejDropDownList("getSelectedValue");


        $('#accwpopup').ejWaitingPopup({
            showOnInit: true,
            text: "Generating file...",
            target: "#tbldata"
        });

        debugger;
        $.ajax({
            cache: false,
            url: '@Url.Action("GetExportData", "MHSubpay")',
            data: {
                datefrom: datefrom,
                dateto: dateto,
                show: show,
                service: service,
                phase: phase
            },
            success: function (data) {
                $('#accwpopup').ejWaitingPopup('destroy');
                window.location = '@Url.Action("Download", "MHSubpay")?fileGuid=' + data.Data.FileGuid + '&filename=' + data.Data.FileName;
            },
            error: function (data) {
                $('#accwpopup').ejWaitingPopup('destroy');
                showMessage("An error ocurred trying to generate the file", false);
            },
            async: false
        });
    }

标签: jqueryasp.netajax

解决方案


受影响的行是这一行,因为这是您尝试访问该FileGuid属性的唯一行:

window.location = '@Url.Action("Download", "MHSubpay")?fileGuid=' + data.Data.FileGuid + '&filename=' + data.Data.FileName;

更具体地说,该行的这一部分:

data.Data.FileGuid

基于 Ajax 请求成功执行,但响应没有Data属性。

我要做的是console.log(data)在成功方法的第一行添加一个以查看响应正文中的内容。

旁注:这是在浏览器中运行的 JavaScript 代码,因此在这个运行在服务器端的 CS 文件中放置断点没有多大意义。


推荐阅读