我在客户端有一个 .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 500错误代码,而不是里面有错误的HTTP 200 OK。
如何解决我的问题,或者是否有另一种方法可以从 WCF 服务获取 JSONP?