我有一个通过HTTPS加载的页面,在页面中我使用jQuery $ .get()对相关文件执行XHR请求,并且根据Chrome,这是尝试通过HTTP获取请求,所以我得到一个跨源访问控制错误加载。
如何强制我的请求使用HTTPS?
如果不清楚,我正在加载https://example.com/myapp/,反过来又有这个JS:
$.get('file', function(data) { ... }
所有JS文件(包括jQuery)都通过https加载。令人惊讶的是,我在与XHR协议相关的jQuery文档中找不到任何内容。这不可能是一个边缘情况,似乎是一个非常典型的事情(通过AJAX加载相对URL到http)。我错过了一些明显的东西吗?
答案 0 :(得分:3)
事实证明这是休息时间:
$.get('directory', function(data) {...})
但这不是:
$.get('directory/', function(data) {...})
我的示例代码在使用'file'作为资源时会产生误导(我忘记了我的内容)。所以第一种情况是在某处触发重写规则(我无法访问的全局Apache配置),显然重写规则对于保留协议并不聪明。所以这个bug似乎与我的托管服务提供商的Apache配置有关,如果它可以被称为bug。要明确的是,如果通过HTTP加载,我的应用程序中的任何一个都可以正常工作,因此这是重写打破HTTPS的实际错误。
我怀疑任何人都会从我的问题或答案中受益,但如果您正在完成上述所有工作并拥有相同的托管服务提供商,那么就是这样!