【问题标题】:Codeigniter - jquery.min.js:4 Mixed Content: the content must be served over HTTPSCodeigniter - jquery.min.js:4 混合内容:内容必须通过 HTTPS 提供
【发布时间】:2017-08-09 05:06:08
【问题描述】:

我有一个通过 AJAX 发布数据的 JS 脚本。当我将脚本放在我的服务器上时,发布 URL 是 https,但是当我通过在线查看页面源查看 js 时,URL 以 http 开头。

我收到以下错误。

jquery.min.js:4 混合内容:“https://www.mywebsite.com/”处的页面通过 HTTPS 加载,但请求了不安全的 XMLHttpRequest 端点“http://www.mywebsite.com/bookmark”。此请求已被阻止;内容必须通过 HTTPS 提供。

服务器上的脚本

$(document).on("click","#bookmark",function(a){a.preventDefault();var t=$(this).attr("bookmark_id"),e=$("input[name=msmm_tn").val(),s=$(this);$.ajax({type:"POST",url:"https://www.mywebsite.com/bookmark",data:{msmm_tn:e,bookmarkid:t},dataType:"json",success:function(a){"X"==a.status&&(s.find("i").addClass("green"),s.removeAttr("href"))}})})

当我在网络浏览器中单击 js 文件时,https:// 是 http。我不知道为什么。

【问题讨论】:

  • 可能是缓存问题。清除浏览器缓存,然后重试。
  • 我从数据库中清除了缓存和所有会话,但 .js 文件仍然有 http 作为 URL,即使我使用 https 将文件保存到我的服务器。在服务器端我可以在文件中看到 https,在客户端它是 http。
  • 输入 url:"//www.mywebsite.com/bookmark" 并让 apache 决定加载(可能)安全版本。
  • 我实际上只是将第二个参数作为 URL url:"bookmark" 并且仍然确定了 http。这似乎只是 Chrome 中的一个问题。它在 Firefox 中运行良好。我知道那应该没关系。很奇怪。
  • 请在 Chrome 的新私人窗口中再试一次,因为这样您就可以确定没有会话、cookie 等。

标签: javascript jquery codeigniter-3


【解决方案1】:

当任一网站在“HTTPS:”上加载时会显示此错误:
并且您的库加载到“HTTP:”

当任一网站在“HTTP:”上加载时显示此错误
并且您的库在“HTTPS:”上加载

在 Codeigniter 中通过编辑“config.php”解决这个问题。
在您的项目中打开“application/config/config.php”并更改

$config['base_url']

在值中添加“s”
来自

$config['base_url'] = 'http://'.$_SERVER['HTTP_HOST'];

$config['base_url'] = 'https://'.$_SERVER['HTTP_HOST'];

【讨论】:

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