gpt4 book ai didi

asp.net - 将静态内容与 Web 服务托管在不同的域上,如何避免跨域?

转载 作者:行者123 更新时间:2023-12-04 04:35:44 25 4
gpt4 key购买 nike

我们最近一直在开发一个相当现代的 Web 应用程序,并准备将其部署为 alpha/beta 版并获得一些实际体验。

我们有基于 ASP.Net 的 Web 服务 (Web Api) 和一个 JavaScript 前端,它是 100% 使用主干的客户端 MVC。

我们已经购买了我们的域名,为了这个问题,我们的部署如下所示:

webservices.mydomain.com(网络服务)

mydomain.com(JavaScript 前端)

如果 JavaScript 尝试与子域上的 Web 服务通信,我们会因跨域问题而崩溃,我使用过 CORS,但对跨浏览器支持不满意,因此我将其视为一个选项。

在我们的开发 PC 上,我们使用 IIS 反向代理将所有对 mydomain.com/webservices 的请求转发到 webservices.mydomain.com - 这解决了我们所有的问题,因为浏览器认为所有内容都在同一个域上。

所以我的问题是,在公共(public)部署中,这个问题最常如何解决?反向代理是正确的方法吗?如果是这样,是否有任何托管服务为这种情况提供反向代理?有更好的部署方法吗?

我想使用 CloudFront CDN,因为我们所有的服务器/服务都由 Amazon 托管,但我真的很难找到有关 CDN 是否可以支持这种设置的信息。

谢谢

最佳答案

您正在尝试做的是跨子域调用,而不是完全跨域。
这就是技巧:http://www.tomhoppe.com/index.php/2008/03/cross-sub-domain-javascript-ajax-iframe-etc/

当被问及这个问题是如何最常见的解决方法时。我的回答是:这个问题通常是避免的。在现实世界中,您将设置您的域,例如您不需要为了让您的应用程序运行或设置代理服务器来为您转发调用而采取这种方式。 JSONP 也是一个 hack-ish 解决方案。

关于asp.net - 将静态内容与 Web 服务托管在不同的域上,如何避免跨域?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9746266/

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