【问题标题】:This request has been blocked; the content must be served over HTTPS此请求已被阻止;内容必须通过 HTTPS 提供
【发布时间】:2015-03-23 22:05:08
【问题描述】:

我尝试做 ajax,我的代码写在一个 https 站点上,它请求非 https,但是资源被 Chrome 阻止了。

            $.ajax({
                url : "http://example.com/non-https",
..
..

以前在早期版本中我没有这个问题。我的 ajax 请求也必须针对 https 吗?还是有更好的方法来解决这个问题?

【问题讨论】:

  • 当主文档通过 HTTPS 加载时,现在几乎所有当前浏览器都会阻止加载非 HTTPS 资源。所以是的,您也必须向 HTTPS URL 发出 AJAX 请求。
  • @CBroe 的意思是我必须获得便宜的 ssl 才能开发一些东西?
  • 如果你在谈论你的本地开发——一个自签名证书就可以了(一旦你在浏览器中添加一个例外,它就会接受它)。或者——首先不要使用 HTTPS 来加载主文档……
  • @CBroe 说我想注入一些东西(https),我的请求目标也必须是 https ..别无选择..

标签: ajax http https


【解决方案1】:

只需将你的url变量中的http://更改为//,这样当页面加载http时,ajax请求将使用http协议,如果加载https,ajax请求协议将由浏览器转 https。即,您的代码应如下所示:

           $.ajax({
                url : "//example.com/non-https",
..
..

【讨论】:

    猜你喜欢
    • 2018-12-18
    • 1970-01-01
    • 2016-08-28
    • 1970-01-01
    • 2021-08-29
    • 1970-01-01
    • 2022-01-11
    • 2016-03-01
    • 2018-08-30
    相关资源
    最近更新 更多