【问题标题】:What is the difference between a normal $.post() passing strings and one passing a file? [duplicate]普通的 $.post() 传递字符串和传递文件有什么区别? [复制]
【发布时间】:2012-07-26 08:11:58
【问题描述】:

我想知道为什么我不能使用 $.post() 方法在 JQuery 中上传文件?

有没有办法调整请求以处理这个问题?

$.post(url, { file: fileName, path: "/uploads" }, function (result) {});

【问题讨论】:

    标签: javascript jquery asp.net-mvc jquery-plugins


    【解决方案1】:

    我想知道为什么我不能使用 $.post() 方法在 JQuery 中上传文件?

    这是因为为了上传文件,您需要使用multipart/form-data 协议,这意味着请求正文需要以与 jQuery 使用的标准形式 POST 完全不同的方式呈现:application/x-www-form-urlencoded(键/ POST 正文中用 & 分隔的值对)。更不用说为了在请求中写入文件内容,您需要访问文件内容,正如您所知,在 javascript 中根本不是这种情况。

    但不要失去所有希望。将来,通过XmlHttpRequest2 和 HTML5,您将能够使用 AJAX 上传文件。

    直到这个未来到来(顺便说一下,这不应该那么遥远,只要我们摆脱了 IE

    所以,谷歌,做一个愿望清单:

    然后继续玩演示,阅读文档,选择一个适合您的需求并尝试在您的网站中将其付诸实践。如果您遇到一些具体问题,请不要犹豫。

    但不幸的是,使用$.post 上传文件是今天的禁忌。

    【讨论】:

    • 我不知道这个,谢谢你的洞察力。
    猜你喜欢
    • 1970-01-01
    • 2022-12-15
    • 2012-04-25
    • 1970-01-01
    • 2012-05-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多