终于找到jquery ajxa请求传图片时为什么总是失败的原因了!
来源:互联网 发布:贝叶斯定理 知乎 编辑:程序博客网 时间:2024/04/27 22:24
开宗明义,很关键的一个配置processdata:
它会调用返回值:StringjQuery.param把{ width:1680, height:1050 }参数对象序列化为width=1680&height=1050这样的字符串。
如果你要发送的是个xmlDocument,当然就不希望能这么发送了,必须得设置processData=false,且以POST方式发送才行。
之前在设置ajxa请求时都没有习惯去设置下面这些参数:
async: false, cache: false, contentType: false, processData: false,
而processData就是和传文件有关的参数,不设置每次ajax请求都到不了后台直接前台报错。
最后附上成功请求的代码:
$.ajax({ type: 'POST', url: 'uploadFile', data: formData, dateType:'JSON', async: false, cache: false, contentType: false, processData: false, success: function(result){ console.info("upload success"+result.result); }, error: function(XMLHttpRequest, textStatus, errorThrown) { console.info(XMLHttpRequest.status); console.info(XMLHttpRequest.readyState); console.info(textStatus); }, complete: function(XMLHttpRequest, textStatus) { this; // 调用本次AJAX请求时传递的options参数 } });
补充必须设置contentType 为false:
这就是因为当我们在 form 标签中设置了enctype = “multipart/form-data”,这样请求中的 contentType 就会默认为 multipart/form-data 。而我们在 ajax 中 contentType 设置为 false 是为了避免 JQuery 对其操作,从而失去分界符,而使服务器不能正常解析文件。
需要结合这篇文章做深入理解:
https://segmentfault.com/a/1190000007207128
http://www.w3school.com.cn/jquery/ajax_ajax.asp
睡前再补充:
细心很重要,读者自行脑补这个ajax和上一个的区别把:
$.ajax({ type: 'POST', url: 'uploadFile', data: formData, async: false, cache: false, contentType: false, processData: false, dataType:'json', success: function(result){ console.info("upload success"+result.result); }, error: function(XMLHttpRequest, textStatus, errorThrown) { console.info(XMLHttpRequest.status); console.info(XMLHttpRequest.readyState); console.info(textStatus); }, complete: function(XMLHttpRequest, textStatus) { this; // 调用本次AJAX请求时传递的options参数 } });
阅读全文
0 0
- 终于找到jquery ajxa请求传图片时为什么总是失败的原因了!
- Cuda 6.0安装失败,终于找到原因了~
- 终于找到包裹打不开的原因了
- sfsx2 jar为什么没有找到服务器端扩展,折腾了三天终于找到原因了!
- 终于找到BalloonTip一直弄不出的原因了
- 终于找到程序员无休止加班的原因了
- 终于找到程序员无休止加班的原因了
- 终于找到程序员无休止加班的原因了
- 【转载】终于找到程序员无休止加班的原因了!
- 终于找到miniblink播放jwplayer不了的原因了
- 明明已经引入了jquery,还是不断地报错,终于找到原因了
- FreeImage加载PNG8失败的原因找到了
- android studio adb隔段时间总是被重启的元凶终于被找到了
- 困扰了我很久STM32的TIM1时钟走慢的问题终于找到原因了
- 访问远程图片,symbian版本比java慢的原因终于找到!
- 终于找到了 (enterFrame) 事件让swf“卡死”的原因
- mysql 短连接压测遇到的问题及查找解决思路[终于找到原因了]
- 走访2000人:终于找到诺基亚销量不好的原因了
- 字符串匹配之看毛片算法-KMP
- TensorFlow学习日记14
- bzoj2318
- Codeforces 190D Non-Secret Cypher
- python使用正则表达式例子
- 终于找到jquery ajxa请求传图片时为什么总是失败的原因了!
- HTML表单
- 断言
- 玩转 React
- 数据结构1 2 章小总结
- 紫书p263 嵌套矩形如何输出所有路径(DAG上的动态规划)
- [NOIP2017模拟]星星
- 项目开发中git分支规范
- java类加载模式与web容器的类加载模式