2

jQueryとPHPを使用していますが、に問題がありhistory.pushStateます。

ブラウザのURLが次のようになったら、アンカータグまたはリンクをクリックするとwww.example.com/index.php/home/viewer/id

リンクをもう一度クリックすると、ブラウザのURLが次のようになり www.example.com/index.php/home/photo_viewer/index.php/home/viewer/id
ます。これは正しくありません。

ブラウザのURLをwww.example.com/index.php/home/viewer/id

この問題を解決するにはどうすればよいですか?

<a href="index.php/home/viewer/ $row['id'] " Onclick="viewer(this); return false;"> id </a>

<script type="text/javascript">
   function viewer(link){
       var ajax_data ={ajax:'1'};

       $.ajax({
             type: "POST",
             url: link,  
    data: ajax_data,
             success: function(html){

                  $("#viewer").html(html); 

    window.history.pushState(null,null, link);

    e.preventDefault();
     }});
        return false; } 
4

1 に答える 1

6

おそらくあなたのURLが相対的であるためです。スラッシュを前に付けて絶対にする必要があります。

href="/index.php/home/viewer/..."
//    ^

相対URLは常に、現在のリソースに相対的なリソースを指定します。つまり、パスは現在のパスに追加されるだけです。ドキュメントも参照してください:

新しいURLは絶対である必要はありません。相対的な場合は、現在のURLを基準にして解決されます。

更新:大きな違いはありhrefますが、リンク自体ではなく、リンクの属性にアクセスしてくださいlink.href

于 2011-05-10T12:41:48.167 に答える