じょもらな日々

電脳硬化症気味な日記です。まとまった情報は wiki にあります。

2011.8.11 (Thursday)

at 16:46  

ASP.NET WebサービスでJSONPは実現できない?   [ICTメモ]

 .NET 4.0のASP.NET Webサービスで、クラスに[ScriptService]、メソッドに[ScriptMethod]を付けると、応答がJSONで返るようになります。更に、[ScriptMethod(UseHttpGet=true)]とすると、GETメソッドでも呼び出せます。

 じゃぁ、JSONPも実現できるだろ、ってことで、「"callback"ってパラメータがあったら、その値を名称としたfunctionを返すIHttpModule」を作成して、jQuery-1.6.2から呼び出してみました。

 が、うまくいかず…。JSONPはGET専門なので、
 http://hogehoge/hogeWebService.asmx/hogeMethod?calback=cb&param1=val1&param2=val2
って感じのURLを要求すると、

無効な JSON プリミティブです: val1
場所 System.Web.Script.Serialization.JavaScriptObjectDeserializer.DeserializePrimitiveObject()\r\n

と言われます。URLクエリの値をJSON形式の文字列だと思ってやがる…。なじぇ?

 ASP.NETの*.aspxで独自コードをゴリゴリ書けば、JSONPは実現できるけど、やっぱ、Webサービス的なPlain Old Object(*.asmx)で実現したいところ。できないのでしょうかね?


« smart phone(003SH… Clip to Evernote
Redmineのリポジトリタブを公… »
  trackback:    



Go back.