由于混合内容问题(http / https)

时间:2015-07-02 10:15:55

标签: jquery ajax google-chrome https mixed-content

我目前正在使用jQuery AJAX来获取相对URL,前面没有scheme / domain(例如'/ js / get_international_popup /'。当我返回之前查看我的位置标题时,响应也是一个相对URL它

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

  

混合内容:“https://example.com/”页面是通过HTTPS加载的,但是请求了一个不安全的XMLHttpRequest端点“http://example.com/js/get_international_popup/”。此请求已被阻止;内容必须通过HTTPS提供。

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

如果我返回带有绝对网址的回复(包括https://domain),一切似乎都运行良好,但我不想使用绝对网址。

是否有人知道是否有办法使用相对网址解决此问题?

2 个答案:

答案 0 :(得分:0)

使用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

注意: 未经测试

答案 1 :(得分:0)

有时它可能是由斜杠引起的。将https://example.com/js/get_international_popup/更改为https://example.com/js/get_international_popup