首页 文章

从Web站点客户端脚本访问WCF RESTful服务跨域

提问于
浏览
3

我正在使用VS 2010 IDE处理WCF RESTful服务,在研究期间,我们被告知API将部署在站点将托管的同一域中,例如 .

API Hosting: www.site.com/API/services.svc(其中API是虚拟文件夹)

Site Hosting: www.site.com

因为我们的网站使用客户端ajax将使用相同的API,我们计划在同一个域中部署,因此不存在跨域/源访问问题 .

但是,后来有一个变化,iPad,iPhone和智能电视应用程序将使用相同的API,因为我们计划在一个名为www.api.com的单独域中部署API的API将会有巨大的流量 . /services.svc它对所有设备应用程序反应良好但是,我们在网站上有问题,因为它是来自客户端的跨域访问 . 在搜索之后,我通过在Global.asax文件Application_BeginRequest()中实现以下代码,在Chrome,Firefox和Safari浏

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所在

1 回答

  • 0

    据我所知,IE不允许“*”

    HttpContext.Current.Response.AddHeader("Access-Control-Allow-Origin", "*");
    

    尝试指定域 . 你也可以在这里参考:
    Access-Control-Origin in IE

相关问题