Blob 和 Ajax 问题 TypeError: 无法在 'Blob' 上执行 'arrayBuffer': 非法调用

问题描述 投票:0回答:1

嗨,我正在尝试在 $.ajax 内传递数据中的 blob

var blob = new Blob([content], { type: 'text/plain;charset=utf-8' });
        $.ajax({
            url: "myurl",
            type: 'POST',
            dataType: 'json',
            data: {
                'test': true,
                'jsonFile': jsonFile,
                'htmlFile': blob,
            },
            success: function(response) {     
                $('#msg').addClass('success');
            }
        });

返回此错误未捕获(承诺中)TypeError:无法在“Blob”上执行“arrayBuffer”:非法调用

如果我删除 'htmlFile': blob,工作正常,但我必须传递一个 blob。

我阅读了我尝试使用的其他线程:

  • processData: false, contentType: false, -> 错误消失但 post 中的变量为空
  • var formdata = new FormData() 以精确的方式格式化数据,但不起作用

你还有其他想法吗?

jquery json ajax post blob
1个回答
0
投票

添加 processData: false 应该可以解决问题,因为此指令会阻止 jQuery 对数据进行字符串化。

© www.soinside.com 2019 - 2024. All rights reserved.