javascript - 尝试将 javascript 转换为 jquery 时出现错误 'Illegal Invocation'

标签 javascript jquery ajax asp.net-mvc

我正在尝试将一些代码从 javascript 转换为 jquery。

Javascript代码:(我有这个代码here)

window.onload = function () {
    document.getElementById('uploader').onsubmit = function () {
        var formdata = new FormData(); //FormData object
        var fileInput = document.getElementById('fileInput');
        //Iterating through each files selected in fileInput
        for (i = 0; i < fileInput.files.length; i++) {
            //Appending each file to FormData object
            formdata.append(fileInput.files[i].name, fileInput.files[i]);
        }
        //Creating an XMLHttpRequest and sending
        var xhr = new XMLHttpRequest();
        xhr.open('POST', '/Home/Upload');
        xhr.send(formdata);
        xhr.onreadystatechange = function () {
            if (xhr.readyState == 4 && xhr.status == 200) {
                alert(xhr.responseText);
            }
        }
        return false;
    }
}

JQuery代码:(根据我的应用程序)

 $('#AutoUploadFiles').click(function () {

        var formdata = new FormData();
        var fileInput = $("#AutomaticUploader");

        for (var i = 0; i < fileInput.get(0).files.length; i++) {
            formdata.append(fileInput.get(0).files[i].name, fileInput.get(0).files[i]);
        }

        $.ajax({
            url: '/members/AutoUploadFile',
            type: 'post',
            data: formdata,
            success: function () {

            },
            error: function () {

            }
        });
    });

当我尝试执行上述 JQuery 代码时,我在 jquery.min.js 文件中收到“非法调用”错误。

我是 Web 编程新手,因此在转换为 JQuery 时可能犯了一些错误。 如果有人发现错误,请指导我。

最佳答案

问题是formdata是一个对象,无法序列化为普通字符串

  var formdata = new FormData();

并在您的代码中

type: 'post',
data: formdata, //<-- this is the problem
success: function () {

formdata 必须序列化为有效的 json 数据,否则它无法通过 $.ajax() 发送,这就是为什么你的jquery 版本将无法工作。请尝试其他 jquery uploader 脚本,因为 google 中有很多这样的脚本

关于javascript - 尝试将 javascript 转换为 jquery 时出现错误 'Illegal Invocation',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18914256/

相关文章:

ajax - 简单的 RTMP 网络摄像头脚本?

php - 扩展 PHP/AJAX 轮询网站更改的有效方法

jquery - jQuery中如何选择具有相同属性值的元素?

jquery - 如何查看 jQuery 错误?

javascript - 如何解析对象中包含数组的 Json 对象

javascript - 如何转义 javascript 字符串中的 & 符号以便页面将严格验证?

javascript - iframe窃取鼠标事件

javascript - Jquery 中使用正则表达式的浮点范围

javascript - 如何从 GOOGLE AJAX Feed API 获取新闻项目的描述

javascript - 在特定点播放和暂停 html5 视频