2012-08-06 65 views
1

在我的网站上,我使用.load从其他页面获取内容。它只适用于某些情况。当网站的网址输入为http://www.klossal.com/portfolio的.load内容只能在进入这样:jquery .load路径故障

.load('/space_fullscreen.html'); 

或者是这样的: .load(“www.klossal.com/portfolio/space_fullscreen.html”);

的问题是有时人会为http://klossal.com/portfolio键入一个URL,当他们做到这一点之前的两个路径不再工作,我得进去,将其更改为:

.load('http://klossal.com/portfolio/space_fullscreen.html'); 

有没有办法设置它,所以它会工作,无论人们如何输入网址?

整个脚本是:

<script type="text/javascript"> 
$(function() { 
$("#fullscreen_launch").click(function(){ 
$('#fullscreen').empty(); 
$("#fullscreen").animate({ 
top: '0px', 
height:'100%', 
}, 950, function() { 
$('#fullscreen') 
    .load('.../space_fullscreen.html'); 
}); 
}); 
}); 
</script> 
+0

我没有看到您正在使用用户的实际输入来确定要加载的页面。你能解释一下这个部分:“问题是有时候人们会在http://klossal.com/portfolio中输入url,当他们这样做时,前两条路径不再起作用,我必须进入并将其更改为: “ – 2012-08-06 13:25:38

回答

1

这是因为你使用的.load,然后浏览器的同源策略阻止请求的完整URL。对于浏览器“www.klossal.com”与“klossal.com”不一样。

2种方法来解决这个问题:

1)最简单和好办法:只使用相对URL。请致电.load('space_fullscreen.html')而不是.load('http://www.klossal.com/portfolio/space_fullscreen.html'),以便浏览器将请求发送到同一来源(使用或不使用www),并且同源策略不会阻止请求。

或者

2)配置您的应用程序从 “klossal.com” 重定向到 “www.klossal.com”。

+0

所以即使当我做.load('space_fullscreen.html')并键入url作为klossal.com/portfolio或http://klossal.com/portfolio它不会加载任何东西。由于某种原因,它必须在前面有www。 – loriensleafs 2012-08-06 13:46:18

+0

您是否试图删除所有绝对路径? – devundef 2012-08-06 14:17:44

+0

打开javascript控制台并键入:'$('#fullscreen').load('http://www.klossal.com/portfolio/space_fullscreen.html');'并查看消息:同源策略blabla .. 。 – devundef 2012-08-06 14:18:38