使用formdata的Ajax文件上传
Ajax file upload using formdata Internet Explorer 10
我一直在寻找解决方案,但从未成功。我有一个ajax调用与formdata的图像上传到服务器。代码看起来像
$.ajax({
type:'POST',
url:'url',
data:UPLOAD_DATA,
processData:false,
contentType:false,
cache:false,
timeout:10000,
mimeType:'multipart/form-data',
dataType:'json',
success:function(data){
if(data.success){
alert(data.success);
}else if(data.redirect){
window.location.redirect=data.redirect;
}else{
alert(JSON.stringify(data));
}
}
});
发送时,控制台仍然显示"pending"。这段代码可以在除ie10以外的所有浏览器中运行。
以前的IE版本(8和更早版本)不接受对多部分表单的ajax提交的JSON响应。从而导致永远不会进入成功回调,并且在某些情况下建议用户将JSON响应作为文本文件下载。
我想IE10不会犯同样的错误。如果是这样,您可以考虑将JSON内容作为文本返回,将请求dataType设置为文本,并在成功回调中将文本响应解析回JSON客户端。
然而,在搜索头痛之前,请看看jQuery表单插件,它将处理ajax提交的表单(多部分或不),并提供回调,如有用的uploadProgress一个。
我很抱歉这是一个愚蠢的错误。我认为url作为相对路径在服务器上不支持在internet explorer,通过给出完整的https://"…"路径解决了问题。
相关文章:
- 如何在php文件中获取$.post-ajax传递的值
- 在使用Polymer'加载所有json文件后执行方法;s的核心ajax
- 通过Ajax将JavaScript函数传递给PHP文件
- Ajax文件加载和<输入>文件加载
- 正在传递JSONP标头's数据参数到另一个文件中的AJAX请求
- 通过ajax到php文件获取单选按钮值
- 在样板文件中实现Ajax
- AJAX不会在文件上传后重定向到网页-POST方法
- 如何在 AJAX JQuQudy中对文件上传进行排队
- 使用ajax下载与存储名称不同名称的文件
- Ajax调用返回当前html页面,而不是请求的文件
- 在更改名称时,使用ajax jsp在下拉菜单中填充多个文件夹的数据
- AJAX上传文件不起作用
- 使用AJAX将文件上载到服务器
- 使用ajax上传的文件返回错误,但使用c#在asp.net的服务器端正常提交的文件
- AJAX在Django的外部JS文件中发布
- YUI向json文件发出ajax请求
- WebApp 读取文本文件 Ajax、HTTPrequest 或
- Magento:无法运行数据流配置文件:Ajax 错误(未捕获的类型错误:e 不是函数)
- 如何使用链接检索整个数据文件(ajax?)