Javascript 得到一个Ajax错误";xxx“;没有定义

Javascript 得到一个Ajax错误";xxx“;没有定义,javascript,jquery,ajax,Javascript,Jquery,Ajax,我浏览了大量的Stackoverflow问题、各种教程和youtube视频,到目前为止,没有一个(我发现的)能为我解决这个问题 我有一个表单可以加载单个文件。它提交的罚款没有ajax <form asp-action="FileIndexView" asp-controller="SuburbsAndPostcodesAdmin" method="post" enctype="multipart/form-data">

我浏览了大量的Stackoverflow问题、各种教程和youtube视频,到目前为止,没有一个(我发现的)能为我解决这个问题

我有一个表单可以加载单个文件。它提交的罚款没有ajax

    <form asp-action="FileIndexView"
          asp-controller="SuburbsAndPostcodesAdmin"
          method="post"
          enctype="multipart/form-data">
        <div class="form-horizontal">
            <div class="form-group">
                <label class="col-md-4 control-label">Select the Suburbs and Postcodes latest CSV File:</label>
                <input type="file"
                       name="CSVFile"
                       id="txtFileUpload"
                       class="col-md-8 control-label" />
            </div>
            <div class="form-group">
                <input type="submit"
                       name="Submit"
                       value="Submit"
                       class="col-md-1 btn btn-primary"
                       disabled="disabled"
                       id="SubmitFile" />
            </div>
        </div>

选择郊区和邮政编码最新的CSV文件:
我有一个Ajax POST方法。单击submit按钮时会调用它。一切都好

这是代码

        $('#SubmitFile').click(function (e) {
        e.preventDefault(); // <------------------ stop default behaviour of button

        //var fileUpload = input.files[0];
        var url = "/SuburbsAndPostcodesAdmin/test";
        var connId = $.connection.hub.id;
        var fd = new FormData();
        fd.append('File', input.files[0]);
        fd.append('connId', connId);

        $.ajax({
            type: "POST",
            url: url,
            data: fd,
            processData: false,
            contentType: false,

        });
$(“#提交文件”)。单击(函数(e){
e、 preventDefault();//这个“Formdata”对象似乎可疑

$.ajax({
        type: "POST",
        url: url,
        data: {input: "A", somethingelse: 2, somethingmore: true},
        processData: false,
        contentType: false,

   });
在浏览器中,使用“开发人员选项”并转到“网络”选项卡,以查看POST操作中推送到服务器的内容。我敢打赌,它不符合服务器方法的预期,因此出现异常

编辑


直到现在,我才注意到您正在尝试进行文件上载。通过AJAX,这是一个令人头痛的问题。我成功地使用了一个名为DropZone的插件。

问题在于
input.files[0]
,因为这里的
input
未定义

而不是

fd.append('File', input.files[0]); //here input is not defined
试一试


“为什么这一行出现错误?”因为…
input
未定义。您还没有在任何地方定义它。这是有效的。只是为了确认,名称是任意的。对文件的引用必须是对选择文件的实际ID的引用。感谢所有花时间查看和回答的人。
fd.append('File', input.files[0]); //here input is not defined
fd.append('File', $("#txtFileUpload")[0].files[0]);