繁体   English   中英

尝试将文件发送到MVC中的控制器时,AJAX返回undefined

[英]AJAX returns undefined when trying to send File to controller in MVC

我已经在C#MVC项目的cshtml文件中编写了这个AJAXUpload方法:

function AjaxUpload(url, method, data, successFunction, errorFunction, skipErrorDlg) {
    $.ajax({
        contentType: false,
        processData: false,
        url: url,
        data: data,
        type: method,
        dataType: 'json',
        beforeSend: function (xhr) {
            xhr.setRequestHeader('Authorization', GlobalAuthToken);
        },
        success: function (data) {
            successFunction(data);
        },
        error: function (event, jqxhr, settings, thrownError) {
            console.log(thrownError);
        }
    });
}

这是我的HTML文件组件:

<input type="file" class="file" id="attachment" style="display: none;" onchange="fileSelected(this)" accept=".csv"/>

这是我从上面调用此方法的Javascript:

function fileSelected(input) {
    console.log("Chosen file: " + input.files[0].name);

    var data1 = new FormData();
    data1.append("ImportedFile", input.files[0]); 


    AjaxUpload('/Zetes.ZWS.Processes.Rest/api/importbundles',
        'POST',
        data1,
        function () {
            console.log("Import completed");
        }); 
}

但是,调用此AJAX时总是会出现不确定的错误。 因此,我只是尝试了“尝试并尝试”方法,发现当我使用processData: false它将导致未定义的异常。

因此,我也尝试删除此行。 那给了我Illegal Invocation Exception

有什么建议么?

就像我的代码一样,您将对该位置进行重排属性。 它可以在我的应用程序中工作。希望对您有所帮助。

 $.ajax({
         url: url,
         type: "POST",
         data: data,
         contentType: false,
         processData: false,
         success: function (data) {
           successFunction(data);
         },
         error: function (event, jqxhr, settings, thrownError) {
           console.log(thrownError);
         }
 });

你也可以试试这个

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM