私はJQuery .ajaxメソッドを使用してXMLで単純なPHPクエリの結果を取得しています。問題)。しかし、メインプロジェクト内から受け取ったXMLの結果は、Firebugのコンソールで結果を表示するときに期待していたもの(PHPファイルを表示するだけでテストしたもの)とは異なります。また、これをもう一度試してみましたが、新しいPHPファイルを作成して、Ajax呼び出しを実行し、結果が正しいことを期待しています。JQueryを使用して、同じPHPパラメータを持つ同じPHPファイルのAJAX XML結果が異なる
[更新]:これをもう一度テストしたところ、プロジェクト内で正しい結果が得られましたが、ページを更新すると間違った結果が再び表示されます。
は、テストのために、私はすべてのPOSTデータと成功コールバック関数を除去することにより、プロセスを簡略化し、私はまだ別の結果を得る..ここ
は、コードスニペットは、次のとおりです。
jQueryのAJAXコール(テストファイルの両方で、私のプロジェクト内で使用):
$.ajax({
url:"./lib/ajax_friends.php",
type:"POST",
// data:{action : "getFriends", userID: userID} ,
dataType: 'xml',
sync:false,
error:function(request){alert("error")},
success:function(theXML){
}
})
PHPコードは次のとおりです。
$userID='11';
$sql = "SELECT ID, name, pic_square FROM users WHERE ID = $userID";
$result = mysql_query($sql) or die(mysql_error());
$xml = "";
while($array = mysql_fetch_array($result)) {
$ID = $array['ID'];
$Name = $array['name'];
$pic_square = $array['pic_square'];
$xml .= "<Friend>";
$xml .= "<ID>$ID</ID>";
$xml .= "<Name>$Name</Name>";
$xml .= "<Pic>$pic_square</Pic>";
$xml .= "</Friend>";
}
header('Content-Type: application/xml; charset=ISO-8859-1');
header("Cache-Control: no-cache, must-revalidate");
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
echo "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>";
echo "<Friends>";
echo $xml;
echo "</Friends>";
注:私はフル・リフレッシュを強制するために、ヘッダーを変更しようとしたが、それはまだ
テストファイル (正しい結果が返されます)テストPHPファイルのFirebugのからヘッダを助けにはなりませんでした。
Response Headers
Date
Fri, 08 May 2009 18:53:34 GMT
Server
Apache/2.2.9 (Unix) mod_ssl/2.2.9 OpenSSL/0.9.7l DAV/2 PHP/5.2.6
X-Powered-By
PHP/5.2.6
Cache-Control
no-cache, must-revalidate
Expires
Mon, 26 Jul 1997 05:00:00 GMT
Content-Length
200
Keep-Alive
timeout=5, max=98
Connection
Keep-Alive
Content-Type
application/xml; charset=ISO-8859-1
Request Headers
Host
localhost
User-Agent
Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.0.10) Gecko/2009042315 Firefox/3.0.10
Accept
application/xml, text/xml, */*
Accept-Language
en-us,en;q=0.5
Accept-Encoding
gzip,deflate
Accept-Charset
ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive
300
Connection
keep-alive
X-Requested-With
XMLHttpRequest
Referer
http://localhost/~Seeff/testajax.php
Cookie
a7c768c2549daf4a7f69b9916bab5a38=4555bf36cf1b308f19a12f8da6944b80; a7c768c2549daf4a7f69b9916bab5a38_user
=507514167; a7c768c2549daf4a7f69b9916bab5a38_ss=kKgqsUlOrFArzo9Nrv2Zyg__; a7c768c2549daf4a7f69b9916bab5a38_session_key
=3.qPXakpbNIIX_bvndm_5gnA__.86400.1241895600-507514167; a7c768c2549daf4a7f69b9916bab5a38_expires=1241895600
; fbsetting_a7c768c2549daf4a7f69b9916bab5a38=%7B%22connectState%22%3A1%2C%22oneLineStorySetting%22%3A1
%2C%22shortStorySetting%22%3A1%2C%22inFacebook%22%3Afalse%7D
、応答がある:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?><Friends><Friend><ID>12</ID><Name>XXX
</Name><Pic>http://something</Pic></Friend></Friends>
主プロジェクト
Response Headers
Date
Fri, 08 May 2009 18:53:41 GMT
Server
Apache/2.2.9 (Unix) mod_ssl/2.2.9 OpenSSL/0.9.7l DAV/2 PHP/5.2.6
X-Powered-By
PHP/5.2.6
Cache-Control
no-cache, must-revalidate
Expires
Mon, 26 Jul 1997 05:00:00 GMT
Content-Length
74
Keep-Alive
timeout=5, max=98
Connection
Keep-Alive
Content-Type
application/xml; charset=ISO-8859-1
Request Headers
Host
localhost
User-Agent
Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.0.10) Gecko/2009042315 Firefox/3.0.10
Accept
application/xml, text/xml, */*
Accept-Language
en-us,en;q=0.5
Accept-Encoding
gzip,deflate
Accept-Charset
ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive
300
Connection
keep-alive
X-Requested-With
XMLHttpRequest
Referer
http://localhost/~Seeff/
Cookie
a7c768c2549daf4a7f69b9916bab5a38=4555bf36cf1b308f19a12f8da6944b80; a7c768c2549daf4a7f69b9916bab5a38_user
=507514167; a7c768c2549daf4a7f69b9916bab5a38_ss=kKgqsUlOrFArzo9Nrv2Zyg__; a7c768c2549daf4a7f69b9916bab5a38_session_key
=3.qPXakpbNIIX_bvndm_5gnA__.86400.1241895600-507514167; a7c768c2549daf4a7f69b9916bab5a38_expires=124
1895600
と応答は次のとおりです:私のメインのプロジェクトからAJAX呼び出しからFirebugのヘッダがある
<?xml version="1.0" encoding="UTF-8" standalone="yes"?><Friends></Friends>
いわゆるとき、何らかの理由で、内側のXMLノードは結果から省略されていますメインプロジェクトから
私の主なプロジェクトには何らかの形で干渉しなければならないものがあると思いますが、私はそれを理解できません。どんな助けでも大歓迎です!
Holy tl; dr! (実際には、私は試していません) – cgp
両方のクエリが同じ環境内の同じデータベースに当たっていますか? – Chad