【问题标题】:How to get around Same Origin Policy when sending http request to an API in other server?向其他服务器中的 API 发送 http 请求时如何绕过同源策略?
【发布时间】:2016-01-30 02:59:49
【问题描述】:

我的服务器是 A。还有另一个服务器 B,它有一个名为 C 的 API。当我查看驻留在服务器 B 上的页面时,我看到它通过同源策略向 API C 发送 AJAX POST 请求。

当我将 HTTP 请求从我的服务器 A 发送到位于另一台服务器 B 中的 API C 时,如何绕过此策略?

【问题讨论】:

  • 你不能......出于安全原因,它在那里。好吧,除非您能够在您要访问的服务器上将您的域列入白名单,但我猜它是第三方服务,所以可能不是!
  • @AdamJeffers 我实际上阅读了一些关于此的文章。他们提到了 JSONP 或使用代理等。他们真的对我有帮助吗?
  • 如果您直接通过其公开的端点调用 API,您应该不会遇到 CORS 问题?
  • @AdamJeffers,关键是我和服务器 B 没有任何联系。

标签: api http server same-origin-policy


【解决方案1】:

如果 API C 接受 form-urlencoded 格式,您可以在 A 中的应用中创建一个表单,然后在 B 中调用 Submit 到 C 的 URL。

或者,您可以通过您的 A 服务器代理呼叫。基本上,您的客户端 POST 到您的服务器 A,而您的服务器 A POST 到 B。同源策略仅适用于浏览器,没有什么可以阻止您的服务器 POST 本身。

否则您需要在 C 中启用 CORS。

http://enable-cors.org/

跨域资源共享 (CORS) 是一种能够实现 真正跨域边界的开放访问。如果您为公众服务 内容,请考虑使用CORS开放通用 JavaScript/浏览器访问。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-09
    • 1970-01-01
    • 2011-06-22
    相关资源
    最近更新 更多