1. ホーム
  2. javascript

[解決済み] jQueryのajax関数におけるcontentTypeとdataTypeの違いについて

2022-06-29 22:26:40

質問

以下のようなJqueryコールバック関数があるのですが、これについて少し疑問があります(私はJqueryをあまりよく知りません)。

$("form.readXmlForm").submit(function() {
    // Riferimento all'elemento form che ha scatenato il submit 
    var form = $(this);
    // Variabile che contiene il riferimento al bottone clickato 
    var button = form.children(":first");

    $.ajax({        // Viene eseguita la chiamata AJAX 
        type: "POST", // Tipo di richiesta: POST 
        // URL verso quale viene inviata la richiesta
        url: form.attr("action"),    
        // Dati XML inviati: 
        data: "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><javaBean><foo>bar</foo><fruit>apple</fruit></javaBean>", 
        // Tipo di media type accettabile dalla response: 
        contentType: "application/xml", 
        dataType: "text", 

        success: function(text) { 
            MvcUtil.showSuccessResponse(text, button); 
        }, 

        error: function(xhr) { 
            MvcUtil.showErrorResponse(xhr.responseText, button); 
        }
    });

ご覧のように、この関数は単にバックエンドにAJAXリクエストを実行し、このリクエストのパラメータを設定します。

私は、リクエストをURLに向けて送信すること、リクエストがPOSTリクエストであること、送信するデータが次の文字列であることを設定しました。

"barapple"。

の違いを理解するのが難しいのですが。 contentType dataType

私が思うに contentType は、HTTPレスポンスで受信可能なデータの種類を指定するものだと思いますが、正しいですか?

で、dataTypeは?何と言っていますか?HTTP リクエストで送信するデータの種類ですか?

私はXMLコードをrappresentテキスト文字列を送信しているので、このケースでは、&quot;text&quotです?

どのように解決するのですか?

からの ドキュメント :

contentType (デフォルト: 'application/x-www-form-urlencoded; charset=UTF-8')

タイプは 文字列

サーバにデータを送信する場合、このコンテントタイプを使用します。デフォルトは "application/x-www-form-urlencoded; charset=UTF-8" で、ほとんどの場合、これで問題ありません。もし明示的に $.ajax() に content-type を渡すと、 (たとえデータが送信されなくても) 常にその内容がサーバに送信されます。charset が指定されていない場合、データはサーバーのデフォルトの charset を使用してサーバーに送信されます; サーバー側でこれを適切にデコードする必要があります。

とします。

<ブロッククオート

dataType (デフォルト: Intelligent Guess (xml, json, script, or html))

タイプ 文字列

サーバから返されることを期待するデータのタイプ。指定されていない場合、jQueryは応答のMIMEタイプに基づいてそれを推測しようとします(XML MIMEタイプはXMLを、1.4 JSONはJavaScriptオブジェクトを、1.4 scriptはスクリプトを実行し、それ以外は文字列として返されます)。

それらは本質的にあなたが考えていることの反対なのです。