現在問題來了,當我在做跨網域資料存取時,發生無法存取的問題,原因只是因為對 WebApi 存取預設只有自己的網域才可以,所以必須要設置允許網域。
方法 1.
直接修改 web.config ,不過這是針對所有 Action。
<location path="Sample.txt"> <system.webServer> <httpProtocol> <customHeaders> <add name="Access-Control-Allow-Origin" value="*" /> </customHeaders> </httpProtocol> </system.webServer> </location>
方法 2.
加入一個類別,內容為以下所示:
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System; using System.Web.Http.Filters; namespace Workflow.Filters { public class AllowCrossSiteJsonAttribute : ActionFilterAttribute { public override void OnActionExecuted(HttpActionExecutedContext actionExecutedContext) { if (actionExecutedContext.Response != null) actionExecutedContext.Response.Headers.Add("Access-Control-Allow-Origin", "*"); base.OnActionExecuted(actionExecutedContext); } } }
最後你在 Controller 或者是 Action 上面加上屬性,即可允許跨網域傳輸資料:
[AllowCrossSiteJson] public class InstancesController : ApiController { // ...... }
沒有留言 :
張貼留言