使用 jQuery.ajax 提交文件会给出 TypeError
Submitting a file with jQuery.ajax gives TypeError
我正在尝试使用 jQuery 的 ajax
方法从表单提交文件:
var ofile=document.getElementById('image').files[0];
var formdata = new FormData();
formdata.append("image",ofile);
$.ajax({
url:'elements/save_elements',
data:formdata,
type:'POST'
});
这会导致错误TypeError: 'append' called on an object that does not implement interface FormData
。
导致此错误的原因是什么?它不会发生在实际的formdata.append
上,而是发生在jQuery内部。
我在类似的代码中遇到了同样的问题。关于此错误的信息严重缺乏,因此由于OP没有详细说明:
通过一些调试,我意识到错误是由 jquery 深处的 ajax 调用抛出的,而不是实际的追加。原来我忘了在 ajax 请求中添加processData: false, contentType: false
;这样做解决了问题。
当您将
以下内容添加到 ajax 对象时,它工作正常:
contentType: false,
processData: false,
所以它应该看起来像:
$.ajax({
url:'elements/save_elements',
data:formdata,
type:'POST',
contentType: false,
processData: false,
});
将这些参数添加到 ajax 可以解决问题
$.ajax({
url: 'upload_ajax.php',
type: 'POST',
data: formData,
contentType: false,
processData: false,
相关文章:
- 如何播放部分音频文件
- 从桌面读取python文件时高亮显示代码
- Node.js,TypeError:xxx不是函数,在require'd文件
- 使用 jQuery.ajax 提交文件会给出 TypeError
- Casperjs:“TypeError: 'undefined' 不是一个函数”,如果在另一个文件中使用了 evalua
- TypeError:[].文件未定义.在jquery文件中发布
- TypeError:无法读取属性“”;值“;从未定义.(第9行,文件“代码”)
- 使用文件API trhown“读取JavaScript中的文件;TypeError:e未定义;
- 来自Google Closure编译文件的TypeError
- TypeError:无法读取属性“”;namedValues;从未定义.(第9行,文件“代码”)
- TypeError:无法读取属性'值'$http.get JSON文件时未定义的
- 文件系统Nodejs: "Uncaught TypeError: fs. js.writeFileSync不是
- 在Chai TDD中需要JS文件——TypeError:不是一个函数
- 当在单独的文件中包含javascript类时,未捕获的TypeError: undefined不是函数
- TypeError: $(. .).magnificPopup不是一个函数-当我改变文化时无法加载js文件
- 未捕获的TypeError: undefined不是函数'当把控制器/服务放在单独的js文件中时
- UglifyJS2在.array(“保留文件”)上抛出TypeError
- 使用JSON文件在HTML: Uncaught TypeError: data.forEach不是一个函数
- 通过套接字发送电子文件.io-stream失败'TypeError: Invalid non-string/bu
- 浏览器链接:无法调用返回值回调:TypeError:无法读取属性'文件'为null