通过Access-Control-Allow-Origin控制允许ajax跨域请求的域名
Access-Control-Allow-Origin响应头可以允许哪些域名能发送ajax请求本页面,Access-Control-Allow-Origin响应头一次只能设置一个域名,如果要控制只允许指定的多个域名能跨域请求页面,要如何设置Access-Control-Allow-Origin响应头。
解决办法
建立一个允许跨域请求的域名列表,然获取请求来源域名,和列表进行对比,如果来源域名存在允许的跨域请求域名列表里面,再添加Access-Control-Allow-Origin响应头。
下面为一个C# ashx的示例
public void ProcessRequest(HttpContext context) { System.Collections.Generic.List<string> lHost = new System.Collections.Generic.List<string>(); #region 添加允许跨域请求的域名列表 lHost.Add("xxx.com"); lHost.Add("www.xxx.com"); lHost.Add("www.abc.com"); lHost.Add("abc.com"); #endregion string host = context.Request.UrlReferrer == null ? "" : context.Request.UrlReferrer.Host;//获取从哪个域名发送的ajax请求本页面或者是直接访问 if (lHost.Contains(host)) { //在允许的域名列表里面才添加Access-Control-Allow-Origin响应头 context.Response.AddHeader("Access-Control-Allow-Origin", "http://" + host); } context.Response.Write(DateTime.Now.ToString()); }
加支付宝好友偷能量挖...
原创文章,转载请注明出处:通过Access-Control-Allow-Origin控制允许ajax跨域请求的域名