gpt4 book ai didi

从网站客户端脚本进行 WCF RESTful 服务跨域访问

转载 作者:行者123 更新时间:2023-12-05 01:15:50 26 4
gpt4 key购买 nike

我正在使用 VS 2010 IDE 开发 WCF RESTful 服务,在研究过程中我们被告知 API 将部署在站点将托管的同一域中,例如。

API 托管: www.site.com/API/services.svc(其中 API 是一个虚拟文件夹)

网站托管: www.site.com

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

但是,后来有一个变化,即相同的 API 将被 iPad、iPhone 和智能电视应用程序使用,因为 API 的流量将会很大,我们计划将 API 部署在一个名为 www 的单独域中。 api.com/services.svc 它对所有设备应用程序的响应都很好,但是我们在网站上遇到了问题,因为它是来自客户端的跨域访问。经过搜索,我在 API 中找到了打破此跨域策略的代码,如下所示,通过在 Global.asax 文件 Application_BeginRequest() 中实现以下代码,它在 Chrome、Firefox 和 Safari 浏览器中响应良好,但在 I.E 中没有响应

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();
}

请帮我解决这个问题...

提前致谢...

萨提什

最佳答案

据我所知,IE 不允许在

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

尝试指定域。您也可以引用这里:
Access-Control-Origin in IE

关于从网站客户端脚本进行 WCF RESTful 服务跨域访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10106425/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com