[解決済み] jQueryのajax関数におけるcontentTypeとdataTypeの違いについて
質問
以下のような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はスクリプトを実行し、それ以外は文字列として返されます)。
それらは本質的にあなたが考えていることの反対なのです。
関連
-
Uncaught TypeError: null のプロパティ 'offsetHeight' を読み取れませんでした。
-
[解決済み] let "と "var "の使い分けは?
-
[解決済み] callとapplyの違いは何ですか?
-
[解決済み] jQueryの「exists」関数はありますか?
-
[解決済み] jQueryを使ったAjaxリクエストの中断
-
[解決済み] jQuery Ajax呼び出し後のリダイレクトリクエストを管理する方法
-
[解決済み] どうすればjQueryに非同期ではなく、同期のAjaxリクエストを実行させることができますか?
-
[解決済み] jQuery AJAX送信フォーム
-
[解決済み] キーアップ時ではなく、入力終了時にjavascriptの関数を実行しますか?
-
[解決済み] FirefoxでjQuery $.ajax(), $.post がREQUEST_METHODとして "OPTIONS "を送信する問題
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
vue3レスポンシブ対応のためのsetup+ref+reactive
-
vueにおけるv-forループオブジェクトのプロパティ
-
Vueのクラススタイルの使い方の詳細
-
vueのプロジェクトでモックを使用する方法を知っていますか?
-
Vueのフォームイベントのデータバインディングの説明
-
[解決済み] Error : 未定義のプロパティ 'map' を読み取ることができません。
-
[解決済み】JavaScriptの配列でforEachが関数でない不具合
-
[解決済み】awaitは非同期関数でのみ有効です。
-
[解決済み】リクエストに失敗していないのに、「TypeError: failed to fetch」が表示される。
-
nodejs unhandledPromiseRejectionWarning メッセージ