【问题标题】:Crossdomain request from https to http with callback. And vice versa从 https 到带有回调的 http 的跨域请求。反之亦然
【发布时间】:2016-09-21 22:00:44
【问题描述】:

在演讲之前,我刚刚通过 Flash 制作了它。在服务器端 (https) 放置特殊文件 (crossdomain.xml),并将 Flash 部分放在 http 服务器上。当然,它们在 https 和 http 服务器部分是不同的域。这并不难,因为我拥有两台服务器。 但我不会在没有 Flash 的情况下做到这一点。通过 JS/XHR。还是通过 PHP/curl? 可能吗? 谢谢!

【问题讨论】:

  • 混合的 HTTP / HTTPS 请求往往会被浏览器阻止(无论可能包含什么 CORS 标头)。有关 PHP,请参阅 this question。
  • 你确定没有办法发送请求 https -> http 或 http -> https 吗?

标签: javascript php xmlhttprequest cross-domain


【解决方案1】:

CORS 在每个 Web 服务器中的配置不同,而不是在任何 Web 框架中。以下是在 Apache 上启用它的说明:

http://enable-cors.org/server_apache.html

在 IIS 中:

http://enable-cors.org/server_iis7.html

一旦服务器配置为允许 CORS,您就可以开始使用 JQuery 或您喜欢的任何其他技术发出 CORS ajax 请求。

【讨论】:

  • 浏览器倾向于阻止混合的 HTTP/HTTPS,因此通常会失败。
  • @Quentin 如果浏览器收到适当的标头,应该不会有任何问题。我已经广泛使用了 Chrome 和 IE,没有任何问题。
  • 请参阅this live demo,这会导致 Chrome 输出 混合内容:“jsfiddle.net”处的页面是通过 HTTPS 加载的,但请求了不安全的 XMLHttpRequest 端点“jsonplaceholder.typicode.com/posts/1”。此请求已被阻止;内容必须通过 HTTPS 提供。
  • evernote.com/l/AAMBDdA9W9FBu5X3P4ti5_v_9VhLA80G0Yg — 请求在发送之前就被阻止,因此 CORS 无能为力(因为这取决于响应授予权限)。
  • @Quentin 我不是在谈论混合内容,你是对的,我没有理解问题的那一部分
猜你喜欢
  • 2013-11-02
  • 2012-07-26
  • 2012-02-22
  • 1970-01-01
  • 1970-01-01
  • 2012-01-14
  • 2015-11-17
  • 2013-12-27
  • 1970-01-01
相关资源
最近更新 更多