【发布时间】: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