1

私のサイトでは、.loadを使用して別のページからコンテンツを取得しています。ただし、特定の状況でのみ機能します。サイトのURLがhttp://www.klossal.com/portfolioとして入力され た場合、.loadコンテンツは次のように入力された場合にのみ機能します。

.load('/space_fullscreen.html');

またはこの方法:.load('www.klossal.com/portfolio/space_fullscreen.html');

問題は、http://klossal.com/portfolioとしてURLを入力することがあり、これを行うと、前の2つのパスが機能しなくなったため、次のように変更する必要があります。

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

URLの入力方法に関係なく機能するように設定する方法はありますか?

スクリプト全体は次のとおりです。

<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>
4

1 に答える 1

1

これは、完全な URL を使用していて.load、ブラウザの同一オリジン ポリシーがリクエストをブロックしているためです。ブラウザの場合、「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」にリダイレクトするようにアプリケーションを構成します。

于 2012-08-06T13:25:53.140 に答える