hello-world
webエンジニアのメモ。とりあえずやってみる。

[Rails]JSONP対応を簡単に行う方法

公開日時

Ruby2.0, Rails4.0.2で確認

昨日のNode.jsでJSONP対応する方法に続いて、今回はRailsでJSONP対応する方法です。

通常のJSON

通常のJSONを返す場合はrenderにオブジェクトを渡すとJSON形式で出力されます

render json: { sample: 'this is test json' }

出力結果は

{"sample":"this is test json"}

となります。

JSONP

JSONPでレスポンスを返す場合はcallbackオプションを指定します

render json: { sample: 'this is test json' }, callback: ERB::Util.html_escape(params[:callback])

?callback=cbでアクセスした出力結果は

cb({"sample":"this is test json"})

となり、JSONP形式でデータが返るようになりました。

callbackパラメータなしでアクセスした場合は通常のJSON形式で出力されます。

参考


Related #json

[Node.js]ExpressでJSONP対応を簡単に行う方法

res.sendではなくres.jsonpを使えばJSONP対応が簡単に行えます。