[解決済み】コントローラでJSONをレンダリングする
質問
ある本を読んでいて、コントローラについての章でレンダリングについて書かれているのですが、JSONについてはこのような例があるのですが、詳細には書かれていないので、この例がどのように当てはまるのか、全体像がわかりません。
render :json => @projects, :include => tasks
また、JSONPをコールバック関数で使用する例もあります。
render :json => @record, :callback => 'updateRecordDisplay'
どなたか、これらについて説明してください。
どのように解決するのですか?
通常は、次のように返します。 JSON のどちらかだからです。
A) アプリケーションの一部または全部を Single Page Application (SPA) として構築しており、クライアントサイドの JavaScript がページを完全に再読み込みせずに追加データを取り込むことができる必要がある場合。
または
B) あなたは第三者が消費するAPIを構築しており、データをシリアライズするためにJSONを使用することにしました。
<サブ あるいは、自分のドッグフードを食べて、次のようなことをしているかもしれません。 両方とも
どちらの場合も
render :json => some_data
は、提供されたデータをJSON化します。 そのため
:callback
2番目の例のキーはもう少し説明が必要ですが(下記参照)、同じアイデアの別のバリエーションです(JavaScriptが簡単に扱える方法でデータを返します)。
なぜ
:callback
?
JSONP(2番目の例)は
同一生成元ポリシー
これは、すべてのブラウザに組み込まれているセキュリティの一部です。 もし、あなたのAPIが
api.yoursite.com
で、アプリケーションを
services.yoursite.com
あなたのJavaScriptは、(デフォルトでは)
XMLHttpRequest
(XHR - ajax) のリクエストは
services
から
api
. その制限をごっそり回避してきた方法(以前は
クロスオリジンリソース共有仕様が決定された
) は、サーバーからJSONデータを送信することです。
JSONの代わりにJavaScriptであるかのように
). したがって、送り返すのではなく
{"name": "John", "age": 45}
を送信すると、代わりにサーバーが返送します。
valueOfCallbackHere({"name": "John", "age": 45})
このように、クライアントサイドのJSアプリケーションでは
script
タグが指し示す
api.yoursite.com/your/endpoint?name=John
を作成し
valueOfCallbackHere
という関数(これはクライアント側のJSで定義する必要があります)があります。
を、この別のオリジンからのデータで
.)
関連
-
[解決済み】Bundler: コマンドが見つからない
-
[解決済み] Railsマイグレーションを利用してカラムをドロップする方法
-
[解決済み] 正しいJSONコンテンツタイプは何ですか?
-
[解決済み] JSONでコメントを使用することはできますか?
-
[解決済み] なぜGoogleはJSONレスポンスにwhile(1);を前置するのでしょうか?
-
[解決済み] cURLでJSONデータをPOSTするにはどうすればよいですか?
-
[解決済み] JavaScriptでJSONをきれいに印刷する
-
[解決済み] Microsoft JSONの日付はどのようにフォーマットするのですか?
-
[解決済み] 正しい」JSONの日付形式とは?
-
[解決済み】なぜPythonはこのJSONデータをパースできないのですか?[終了] PythonがこのJSONデータをパースできないのはなぜですか?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】OS X Yosemite 10.10.5 で [Ruby on Rails] 5 をインストールすると extconf が失敗して終了コード 1 エラーになる。
-
[解決済み] 変更欄のRailsマイグレーション
-
[解決済み] heroku push rejected, failed to compile Ruby/rails app
-
[解決済み] erbでコメントを追加する最適な方法
-
[解決済み] どなたか、collection_selectをわかりやすく説明していただけませんか?
-
[解決済み] Rails ExecJS::ProgramError in Pages#home?
-
[解決済み] Herokuの問題 : あなたが探しているページは存在しません。
-
[解決済み] bundle install --without production は何をするのですか?
-
[解決済み] ルビーオンレール モデルから明確な値を選択する
-
[解決済み] Heroku Error R14 (Memory quota exceeded): How do I solve this?