現在問題來了,當我在做跨網域資料存取時,發生無法存取的問題,原因只是因為對 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
{
// ......
}
沒有留言 :
張貼留言