ホームページ >バックエンド開発 >PHPチュートリアル >jQuery AJAX を使用してファイル入力を含むフォームを正常に送信するにはどうすればよいですか?

jQuery AJAX を使用してファイル入力を含むフォームを正常に送信するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-21 03:41:11251ブラウズ

How to Successfully Submit Forms with File Inputs Using jQuery AJAX?

jQuery シリアル化でファイルのアップロードを処理する方法

ファイル入力フィールドを含むフォームを操作する場合、AJAX 送信用の jQuery のシリアル化関数を使用すると、課題を提起します。従来のシリアル化メソッドではファイル入力が効果的に処理されず、空の $_FILES データが生成されます。

解決策: FormData オブジェクト

この制限を克服するには、FormData オブジェクトを利用します。 FormData を使用すると、ファイル入力を含むすべてのフォーム データをキャプチャしてシリアル化できます。 FormData を利用すると、ファイルを AJAX リクエストにシームレスに渡すことができます。

コード例:

$(document).on("submit", "form", function(event) {
    event.preventDefault();
    $.ajax({
        url: $(this).attr("action"),
        type: $(this).attr("method"),
        dataType: "JSON",
        data: new FormData(this),
        processData: false,
        contentType: false,
        success: function (data, status) {

        },
        error: function (xhr, desc, err) {

        }
    });        

});

この例では、フォームから FormData オブジェクトを作成します。そして、processData および contentType オプションを false に設定します。これらのオプションにより、jQuery によるデータの自動変換とコンテンツ タイプの設定が防止され、FormData がファイル アップロード プロセスを処理できるようになります。

以上がjQuery AJAX を使用してファイル入力を含むフォームを正常に送信するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。