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

我目前正在使用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的响应,因为它已被阻止。

如果我返回一个带有绝对URL(包括https://域 )的响应,一切似乎都可以正常工作,但我不想使用绝对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

注意:未经测试