![](/img/trans.png)
[英]When using Multiparty in Node, how do I properly throw an error?
[英]How to throw WebFaultException with HTTP error codes when using JavascriptCallbackBehavior?
我在客户端上有一个.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的方法?
不幸的是,我没有得到任何答复,但是我发现以下一些有用的链接: http : //msdn.microsoft.com/en-us/library/ee816916.aspx 。
我了解此行为是设计使然...尽管从javascript方面(jquery / angular js)来看,在撰写本文时,尚无法读取第二个返回的参数(在我的情况下为http错误代码)。
因此,最后我不确定是否有解决方法以外的解决方案。 现在,我们返回一个CustomResult
,其中包含一个自定义错误代码和消息。
当这些网络技术无法相互融合时,它们会令人非常失望……您不得不采取许多解决方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.