我正在使用VS 2010 IDE開發WCF RESTful服務,在研究期間,我們被告知API將部署在網站將託管的相同域中,例如。WCF RESTful服務從網站客戶端腳本跨域訪問
API託管: www.site.com/API/services.svc(其中API是一個虛擬文件夾)
網站託管: www.site.com
由於,相同的API將由我們的網站使用,我們計劃在同一個域中部署客戶端ajax,因此不會出現跨域/源訪問問題。
但是,後來發生的變化是,iPad,iPhone和智能電視應用將使用相同的API,因爲我們計劃將API部署到另一個稱爲www的域中.api.com/services.svc它對所有設備應用程序的響應都很好,但是,由於它是來自客戶端的跨域訪問,因此我們在網站中遇到了問題。搜索結束後,我發現通過在Global.asax文件Application_BeginRequest()中實現以下代碼,可以在API中打破以下跨代域策略的代碼:Firefox & Safari瀏覽器,但不包含IE瀏覽器
HttpContext.Current.Response.AddHeader("Access-Control-Allow-Origin", "*");
HttpContext.Current.Response.AddHeader("Access-Control-Allow-Methods", "GET, POST, OPTIONS");
HttpContext.Current.Response.AddHeader("Access-Control-Allow-Headers", "x-requested-with");
if (HttpContext.Current.Request.HttpMethod.ToUpper() == "OPTIONS")
{
HttpContext.Current.Response.AddHeader("X-DR-Request-Terminated-By", "CrossDomainXhr-OPTIONS");
HttpContext.Current.Response.AddHeader("Access-Control-Max-Age", "1728000");
HttpContext.Current.Response.End();
}
請幫我解決這個問題...
在此先感謝...
Sathish所在
非常感謝您的回答,並提供非常有用的幫助,請指導我如何爲多個域允許訪問控制 - 允許來源,我嘗試用(,)分隔域但它不工作 – 2012-04-21 09:52:21