我目前正在使用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),一切似乎都运行良好,但我不想使用绝对网址。
是否有人知道是否有办法使用相对网址解决此问题?
答案 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