[解決済み] HTTP Content-Type ヘッダとJSON
2022-03-03 04:46:57
質問
私は常々、未知のものを恐れるあまり、HTTPプロトコルのプロパティのほとんどを使わないようにしています。
しかし、私は今日から恐怖に立ち向かい、ヘッダーを意図的に使うようにしようと自分に言い聞かせた。私はこれまで
json
のデータをブラウザに送信し、すぐに使用することができます。例えば、ready state 4に以下のようなAjaxハンドラ関数があるとします。
function ajaxHandler(response){
alert(response.text);
}
そして、私のPHPコードでcontent-typeヘッダーを設定しました。
header('Content-Type: application/json');
echo json_encode(array('text' => 'omrele'));
ブラウザが受信データを明確に伝えているのに、なぜハンドラ関数からプロパティに直接アクセスできないのでしょうか?
application/json
?
解決方法は?
その
Content-Type
ヘッダは、アプリケーションの情報として使用されるだけです。 ブラウザはそれが何であるかは気にしません。 ブラウザはAJAX呼び出しからのデータを返すだけです。 もし、JSONとしてパースしたいのであれば、自分で行う必要があります。
ヘッダーがあることで、アプリはどのようなデータが返されたかを検知し、それをどのように処理すべきかを知ることができます。 ヘッダーを見て、もしそれが
application/json
であれば、JSONとしてパースします。
実はこれ、jQueryの仕組みなんです。 結果をどう扱うか指示しなければ
Content-Type
を使用して、それをどうするかを検出します。
関連
-
[解決済み] 正しいJSONコンテンツタイプは何ですか?
-
[解決済み] JSONでコメントを使用することはできますか?
-
[解決済み] JavaScriptで "use strict "は何をするのか、その根拠は?
-
[解決済み] URI、URL、URNの違いは何ですか?
-
[解決済み] なぜGoogleはJSONレスポンスにwhile(1);を前置するのでしょうか?
-
[解決済み] JavaScriptでJSONをきれいに印刷する
-
[解決済み] HTTP GET(リクエストボディ付き
-
[解決済み] Node.jsを使うタイミングをどう判断するか?
-
[解決済み】HTTPのPOSTとPUTの違いは何ですか?
-
[解決済み] リファレンス - このシンボルはPHPで何を意味するのですか?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】node.js TypeError: path must be absolute or specify root to res.sendFile [JSONのパースに失敗しました]。
-
[解決済み】フォームコントロールの値アクセサがない
-
[解決済み】Uncaught ReferenceError: angular is not defined - AngularJSが動作しない。
-
[解決済み】ある要素を別の要素に移動させるには?
-
[解決済み】Uncaught SyntaxError: JSON の位置 0 に予期しないトークン u があります。
-
[解決済み】PhantomJS 2.1.1を使用してReactJSアプリケーションをレンダリングできない理由とは?
-
[解決済み】Babel NodeJS ES6: SyntaxError: 予期しないトークンのエクスポート
-
[解決済み】'useState' が定義されていない no-undef React
-
[解決済み】JavaScriptで関数が存在するかどうかを確認する方法は?
-
[解決済み】Javascript、[オブジェクトHTMLInputElement]を表示中。]