som*_*ool 0 javascript asp.net-mvc jquery jquery-plugins
我想知道为什么我不能使用$ .post()方法在JQuery中上传文件?
有没有办法调整请求能够处理这个?
$.post(url, { file: fileName, path: "/uploads" }, function (result) {});
Run Code Online (Sandbox Code Playgroud)
我想知道为什么我不能使用$ .post()方法在JQuery中上传文件?
这是因为为了上传文件,你需要使用multipart/form-data协议,这意味着请求体需要以与jQuery使用的标准形式POST完全不同的方式呈现:( application/x-www-form-urlencoded由POST主体中的&分隔的键/值对) .更不用说为了在请求中写入文件内容,您需要访问文件内容,在javascript中,如您所知,根本不是这种情况.
但是,不要失去所有的希望.将来,使用XmlHttpRequest2和HTML5,您将能够使用AJAX上传文件.
直到这个未来到来(顺便说一句,顺便说一句,我们已经摆脱了IE <= 9),坚持今天存在的东西:文件上传插件,检测浏览器功能,如果浏览器使用XHR2支持它和一些其他技术(如隐藏的iframe或Flash,如果没有),并减轻您自己手动执行此操作的负担.
所以,请继续Google,并制作一份愿望清单:
然后继续玩演示,阅读文档,选择一个适合您需求的文档,并尝试将其付诸实践.如果遇到一些具体问题,请不要犹豫.
但遗憾的是,上传文件$.post对今天来说是禁忌.