[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形式で出力されます。