2

AJAX で奇妙な問題が発生しています。このページで AJAX 関数を呼び出す HTML ページがあります。

public_html/test/books.html

呼び出そうとしている AJAX ファイルは、次のページにあります。

public_html/lists/include/vote_up.php

私はそれを唯一の論理的な方法で含めようとしています。それはこれです:

xmlhttp.open("GET","../lists/include/vote_up.php?id="+id,true);

しかし、リクエストが PHP ファイルに到達することはありません。私は何を間違っていますか?その同じ book.html ページで、「lists/includes」フォルダーからいくつかのインクルードを使用しています。たとえば、次のように機能します。

include('../lists/include/functions.php');

絶対パスを使用して更新された関数は次のとおりです。

function voteUp(id){

    if (window.XMLHttpRequest)
    {// code for IE7+, Firefox, Chrome, Opera, Safari
        xmlhttp=new XMLHttpRequest();
    }
     else
    {// code for IE6, IE5
        xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    }

    xmlhttp.onreadystatechange=function()
    {
    if (xmlhttp.readyState==4 && xmlhttp.status==200)
        {
            document.getElementById("item_voting"+id).innerHTML=xmlhttp.responseText; 
        }
    }

    xmlhttp.open("GET","mydomain.com/lists/include/vote_up.php?id="+id,true);
    xmlhttp.send();
}
4

2 に答える 2

0

私が思うに、まだ public_html フォルダーにいるため、絶対パスsomething.com/lists/include/voice_up.phpが機能するはずです。画像や .css ファイルに頻繁に使用するため、指定した相対パスでもうまく機能するはずです。明確にするために、さらにコードを投稿することをお勧めします。

于 2012-09-24T15:58:20.837 に答える
-2

ここでの問題は、xmlhttp.open関数でシステムパスを使用していることです。Javascriptはクライアント側で実行されるため、システムパスは何の意味もありません。..表記は、このコンテキストでは使用できません。あなたはURLを提供することになっています。domainname.domain/lists/include/voice_up.php代わりに行う場合は、問題なく機能します。

于 2012-09-24T15:51:11.783 に答える