我有一個.Net服務器應用程序(持有WCF REST JSONP服務)和一個JavaScript應用程序在客戶端。如何在使用JavascriptCallbackBehavior時使用HTTP錯誤代碼拋出WebFaultException?
要避免跨域來自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?
@CarlosFigueira是這些東西的主人......我會感謝您的幫助:) – Learner 2012-08-03 12:07:36