api - 跨子域ajax调用

标签 api rest jquery jsonp

我们希望构建一个 Web 应用程序,该应用程序将使用我们的 REST API 并寻找一种方法来规避同源策略安全功能。

我们有一个 REST API,由 SERVER_1 的 api.ourdomain.com 提供服务。 我们有一个 Web 应用程序,它是来自 SERVER_2 的仪表板.ourdomain.com 的服务器。

Web 应用程序使用 Ajax 调用(包括 GET、POST、DELETE 和 PUT 请求)与 REST API 进行通信。

在未来的某个时候,我们可能会考虑允许第三方网站从他们自己的网站和域访问 API。

由于浏览器的同源策略安全功能,这些请求是不允许的。

我们正在寻找规避此问题的方法。

我们遇到的解决方案:

  1. 通过我们的代理传输请求。这会减慢应用程序的速度并需要更多资源。
  2. JSONP - 仅适用于 GET 请求。我们不希望使用 post/put/delete 功能使 GET 请求过载。
  3. 使用 iFrame,并将 document.domain 设置为同一域。仅适用于 ourdomain.com 下的网站。
  4. EasyXDM 等框架。看起来是一个不错的解决方案。

谢谢!

最佳答案

我不了解 EasyXDM,但我在多个应用程序中拥有您所谈论的相同架构。我们使用您建议的解决方案 (1)。在我看来,通过公共(public)子域代理请求是最干净的解决方案。我不认为这是性能问题。许多网站使用类似 nginx 的内容无论如何,要做某种反向代理(作为缓存)。您可以轻松地通过 http://[yourhost]/api 隧道传输您的 API,并通过其他路径传输其余的 HTML、CSS 和图像资源。

关于api - 跨子域ajax调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8834763/

相关文章:

api - Woocommerce Rest API v2 中用户登录/注册的端点

javascript - 意外 session 破坏

facebook - client_id 的 OAuth2 安全注意事项

windows - 使用 Windows API 处理内存转储

java - 从 REST 资源访问 Servlet 初始化参数

rest - 在 Laravel 5.3 中找不到带有 PUT 请求的正文数据

javascript - jQuery "slideDown"动画不起作用

javascript - 如何获取选择器集合中的 jQuery 项

javascript - 使用 GoLang 后端 React JS Rest API 安全性

PHP SOAP 客户端错误