jquery - 由于混合内容问题 (http/https),​​XHR 响应被 Chrome 阻止

标签 jquery ajax google-chrome https mixed-content

我目前正在使用 jQuery AJAX 获取相对 URL,前面没有方案/域(例如“/js/get_international_popup/”)。当我在返回之前查看位置 header 时,响应也是相对 URL它。

当我通过 HTTP 在本地测试时,一切正常。然而,一旦我在我的实时服务器上测试它,通过 HTTPS 的响应就会被 Chrome 阻止,因为它说它不安全:

Mixed Content: The page at 'https://example.com/' was loaded over HTTPS, but requested an insecure XMLHttpRequest endpoint 'http://example.com/js/get_international_popup/'. This request has been blocked; the content must be served over HTTPS.

从 Chrome 的角度来看,我的本地测试请求/响应通过 HTTP 进行,但我的实时测试请求通过 HTTPS 进行并获得 HTTP 响应。我无法在实时服务器上查看 Chrome 的响应,因为它已被阻止。

如果我返回带有绝对 URL 的响应(包括 https://domain ),一切似乎都工作正常,但我不喜欢使用绝对 URL。

有谁知道是否有办法使用相对 URL 来解决此问题?

最佳答案

使用 javascript 添加此内容:

var relative_url = '/js/get_international_popup/';
var absolute_url = window.location.origin + relative_url;
$.ajax(absolute_url, function(){});

引用: http://www.w3schools.com/jsref/prop_loc_origin.asp

注意: 未测试

关于jquery - 由于混合内容问题 (http/https),​​XHR 响应被 Chrome 阻止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31181846/

相关文章:

javascript - jquery - 更改 html <b> 标签的内容

ajax - 使用 MVC3 @Url.Action 的 JQuery Load 无法正确传递参数

javascript - 当我循环时,AngularJs/Ajax 索引正在改变

javascript - 脚本未在 Firefox 中运行,但在 Chrome 中运行

javascript - 添加了 .on ('click' 的 CSS 类)在第一个事件后不可见

javascript - 在 jQuery 中获取全局样式表的值

javascript - 获取 Rails 变量作为 onclick 事件函数的参数

javascript - 在 Ajax 加载页面中加载 javascript

javascript - 有什么方法可以从 Chrome 扩展程序访问证书信息

jquery - 在 CSS/JS 中创建一个 "popout"导航侧边栏