回答

2

SecurityException可能意味着API沒有適當的clientaccesspolicy.xml文件。以下是一個允許所有HTTP方法和標頭的寬鬆示例。我們已經成功地將它用於我們的API(這很流行,但我不知道我們從Silverlight獲得的流量)。

<?xml version="1.0" encoding="utf-8" ?> 
<access-policy> 
    <cross-domain-access> 
    <policy> 
     <allow-from http-request-headers="*" http-methods="*"> 
     <domain uri="http://*" /> 
     <domain uri="https://*" /> 
     </allow-from> 
     <grant-to> 
     <resource path="/" include-subpaths="true" /> 
     </grant-to> 
    </policy> 
    </cross-domain-access> 
</access-policy> 

這需要在域的根,你要使用的API是被放置在一個clientaccesspolicy.xml文件。

+0

真棒,不知道的'HTTP-methods'屬性。謝謝,這使得我不需要X-HTTP-Method-Override。 – Timm 2012-03-09 08:32:34

0

我想出的另一個解決方案是在RestSharp設置X-HTTP-Method-Override頭,然後發送POST請求。

如果您只能修改客戶端代碼,但服務器卻不可用clientaccesspolicy.xml,這可能也很有用。

在我的API I類使用此代碼

if (request.Method == Method.PUT || request.Method == Method.DELETE) 
{ 
    request.AddHeader("X-HTTP-Method-Override", request.Method.ToString()); 
    request.Method = Method.POST; 
} 
相關問題