クライアント側に .Net サーバー アプリ (WCF REST JSONP サービスを保持) と JavaScript アプリケーションがあります。
JavaScript 側からのクロスドメイン呼び出しを避けるためJSONP
に、通信に使用します。私たちが使用しているサーバー側からの JavaScript コールバックで私たちの生活を楽にするためにJavascriptCallbackBehavior
: WCF はコールバック関数ですべての JSON 応答をラップしています。
[JavascriptCallbackBehavior(UrlParameterName = "$callback")]
[ServiceBehavior(...)]
public class MySvcREST : ISvcREST
{
public bool SvcMethod()
{
throw new WebFaultException<string>("ERROR!", HttpStatusCode.InternalServerError);
}
}
上記のコードを使用すると、サービスから次の応答が返されます。
HTTP/1.1 200 OK
Content-Length: 31
Content-Type: application/x-javascript
Server: Microsoft-HTTPAPI/1.0
Date: Fri, 03 Aug 2012 11:43:26 GMT
angular.callbacks._1("ERROR!",500);
EDIT1:実際には、を削除しJavascriptCallbackBehavior
てデフォルトcallback
名のままにしても、同様の効果があり、あまり良くありません。
内部にエラーがあるHTTP 200 OKではなく、 HTTP 500エラーコードを取得したいのです。
私の問題を解決する方法、または WCF サービスから JSONP を取得する別の方法はありますか?