在 API 中使用 CORS
本主题专门讨论 CORS(跨域资源共享)。您可以在代理指南主题中查找有关使用代理的更多信息。
GeoScene Maps SDK for JavaScript 具有 CORS 的自动检测功能。CORS 允许 web 应用程序绕过浏览器的同源策略并访问其他服务器/域上的资源或服务。当 web 服务器和浏览器都支持 CORS 时,不需要代理来进行跨域请求。这很有帮助,因为它可以:
- 提供性能提升,因为 Web 应用程序不再需要将请求发送回其服务器,等待服务器访问所需资源,并在将结果发送回客户端之前解释结果。
- 简化开发,因为不再需要在服务器上维护代理页面。
要支持 CORS,必须为其预先配置 Web 服务器,并且浏览器必须能够支持它。有关在 Web 服务器中启用此功能的更多详细信息,请访问 enable-cors.org。
CORS 和 WebGL
GeoScene Maps SDK for JavaScript 使用 WebGL 渲染图层。WebGL 需要访问原始图像数据。图像必须满足以下要求之一:
- 与应用程序在同一个域中,或者
- 托管在支持 CORS 的服务器上,或者
- 使用代理。
在应用程序工作流中处理 CORS
将始终在支持 CORS 的假设下提出请求。如果您的服务器还不支持 CORS,您可以启用代理规则。
尽管 GeoScene Maps SDK for JavaScript 自动假定支持 CORS,但如果不确定应用程序中的服务是否已启用,建议您配置代理。可以通过 proxyUrl 在应用程序中引用此代理。通过添加此代理,应用程序具有一个回退机制,以防服务请求由于缺乏 CORS 支持而失败。
请注意,在 1.1 版本之前,未为 GeoScene Server 服务启用 CORS。如果需要使用旧版本的 GeoScene Server,您需要通过代理向服务发出请求。