CakePHP 2.1 では、空の応答 (firebug でチェック) を取得し、エラー コールバックをトリガーする ajax 要求があります。
私の.jsから、必要なデータベースレコードを提供するために、同じサーバーのケーキの外からphpを呼び出しています。
function updateDiv() {
$.ajax({
url: 'http://myserver/phpGenesi/api.php',
data: "",
dataType: 'json',
success: function(data)
{
alert(data);
},
error: function(data)
{
alert('error')
}
});
}
これはサーバー上の PHP コードです (うまく動作し、CakePHP ではなく、単に PHP db データです):
$result = mysql_query("SELECT * FROM $tableName where project_id = 101");
$array = mysql_fetch_row($result);
if (mysql_num_rows($result) > 0)
{
$responses = array();
while($row = mysql_fetch_assoc($result)) {
$responses[] = array(
'id' => $row['id'],
'name' => $row['name'],
'dir_description' => $row['dir_description'],
'project_id' => $row['project_id'],
'dir_notes' => $row['dir_notes'],
'dir_dataname' => $row['dir_dataname']
);
}
echo '{"dirs": ' . json_encode($responses) . '}';
}
たとえば、ケーキの外部から同じphpにアクセスすると、結果がうまくいきます。
http://myserver/phpGenesi/api.php
私が必要なものを返します:
{"dirs": [{"id":"240","name":"c","dir_description":"Carlos Test c","project_id":"101","dir_notes":"c","dir_dataname":"c"},{"id":"241","name":"d","dir_description":"Carlos Test d","project_id":"101","dir_notes":"d","dir_dataname":"d"}]}
また、任意のクライアント ドキュメントから呼び出された場合にも機能します。
問題は、ケーキのドキュメント内から呼び出すときです。Firebug が空の応答を示し、ajax エラー関数がトリガーされます。
何が欠けているかについて何か考えはありますか?エラー関数をトリガーしているエラーが発生していることを知るにはどうすればよいですか?