我遇到了一个不寻常的情况。 我已经使用 .load() 加载了网站的一部分,只有在设备不是移动设备时才会触发自身,因此为移动设备提供网站的一个版本,为桌面提供一个版本。
<script>
$(document).ready(function() {
if( /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) ) {
}else
{
$('#slider-desktop').load('http://studio24-24.com/desktop.html');
}
});
</script>
效果很好。然而,我刚刚意识到,如果有人通过 http://www.website.com 访问我的网站或 www.website.com 而不是 http://website.com ,它不加载网站的那部分?
Website with http:// Website with http://www
所以我已经找到了问题的原因。 问题是 http://www要求 .load() 中的 url 带有 http://www也。和 www 与 www。因为.load中有http://mywebsite ,网站仅在我们使用 http://mywebsite.com 访问时加载它。 .
我该如何解决这个问题?
最佳答案
这是因为load
使用ajax,它受到Same Origin Policy的限制。 http://studio24-24.com
和 http://www.studio24-24.com
是不同来源,因此它们之间有ajax默认情况下不允许。
这是使用相对 URL 的原因之一。在您的情况下,"./desktop.html"
(从与当前页面相同的“目录”加载desktop.html
)或"/desktop.html “
(从根目录加载它,即使我们位于“子目录”中)。
关于javascript - 通过 js .load() 加载的内容无法加载 url : http://www or www,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46894305/