0

$.post() メソッドを使用して JQuery でファイルをアップロードできないのはなぜですか?

これを処理できるようにリクエストを微調整する方法はありますか?

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

1 に答える 1

5

$.post() メソッドを使用して JQuery でファイルをアップロードできないのはなぜですか?

これは、ファイルをアップロードするためにmultipart/form-dataプロトコルを使用する必要があるためです。つまり、jQuery が使用する標準形式の POST とはまったく異なる方法でリクエスト本文を提示する必要があります: application/x-www-form-urlencoded(本文で & で区切られたキー/値のペアPOST) . リクエストにファイルの内容を書き込むには、ファイルの内容にアクセスする必要があることは言うまでもありませんが、ご存知のように、javascript ではまったくそうではありません。

しかし、まだすべての希望を失わないでください。将来的には、XmlHttpRequest2と HTML5 を使用して、AJAX を使用してファイルをアップロードできるようになります。

この未来が来るまで (ちなみに、IE<=9 を取り除くとすぐに、それほど遠くないはずです)、現在存在するものに固執します: ブラウザの機能を検出し、ブラウザが XHR2 を使用するファイルアップロードプラグインそれと他のいくつかのテクノロジー (非表示の iframe や Flash がない場合は Flash など) をサポートしており、これを自分で手動で行う負担から解放されます。

それでは、Google、ウィッシュリストを作成してください。

次に、デモを試し、ドキュメントを読み、ニーズに合ったものを選択して、サイトで実行してみてください。特定の問題が発生した場合は、遠慮なく質問してください。

残念ながら、ファイルをアップロードすること$.postは、今日では禁止されています。

于 2012-07-27T15:52:46.760 に答える