JerseyでJSONPを返したい場合のTips
RESTfulなサーバを建てたいと思った時に使うのがJersey。
さて、RESTなだけで、やっぱりクロスドメインとか対応させないとね―。
ということでjsonp対応の方法。
@Path("/jsonget") @GET public JSONWithPadding getMethod(@Context HttpServletRequest request, @QueryParam("callback") @DefaultValue("callback") String callback){ //適当に返却する情報を生成 Object resultObj = ・・・; //返却したいオブジェクトを元にJSONWithPaddingを生成 return new JSONWithPadding(resultObj, callback); }
これだけ。
これだけで、リクエストによってJSONかJSONPか自動で判別してくれます。
なお、無理やりJSONPに固定したい場合には、
@Produces("application/javascript")
を指定してやると大丈夫みたいです。
(こうするとJSONPのJavascrptコードで固定されるらしい。)