ユーザーがMySQLデータベースに存在するかどうかを確認するためにjavascriptを取得しようとしています。
これを行うには、jQuery を使用して、MySQL データベースをチェックする PHP スクリプトにユーザーの詳細を投稿します。
jQuery POST はデータを PHP スクリプトに正常に渡します。私はこれをチェックしました:
- PHPスクリプトにメールを送信して、データを取得したことを知らせます。
- Firebug を使用して呼び出しを追跡する
- Wireshark を使用してパケット交換をトレースすることにより、
しかし、jQuery は、PHP スクリプトから応答を取得するたびに、ステータスが 0 であると判断します。
firebug トレースおよび wireshark トレースでは、PHP スクリプトからの HTML 応答のステータスは常に「200 OK」です。
エンコーディングを強制的に json にしたり、jQuery POST 呼び出しでデータ型を「json」に設定したり、短いスリープをPOST の代わりに GET を使用するような PHP スクリプト。
HTML、javascript、および PHP を最小限に単純化しましたが、それでも jQuery に応答のステータスが 0 以外であると判断させることはできません。
私が今持っているもの:
HTML コード:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org /TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<SCRIPT SRC="Templates/nop_shopping_cart/jquery-1.7.2.js"></SCRIPT>
<script type="text/javascript">
function checkUser()
{
alert("clicked");
jQuery.post( 'http://solfacats.com/dsadmin/valUser2.php', {email: "test", password: "test"}, function(data) { alert("returned"+data)}, "html" );
}
</SCRIPT>
<body>
<button onclick="Javascript: checkUser();"> "test" </button>
</body>
</html>
PHP コード:
<?php
echo "test";
?>
注 - 何が起こっているかを追跡するために、jquery-1.7.2.js の done() 関数で alert() の呼び出しを使用しました。アラートの 1 つは、done() に渡された変数 status の値をポップアップ表示します。これは、変数 status の値が常にゼロであることを示しています。
また、注意してください-関数の早い段階で「status = 200」という行を追加してdone()関数をハックすると、jQuery.postのコールバック関数が呼び出されますが、データ変数の値が渡されたと考えられますそれにはnullです。
IE、Firefox、および Safari でこれを試してみましたが、すべて同じ問題が発生します。
jQuery を取得して PHP 応答が成功したと見なし、応答からデータを正常に抽出するために、ここからどこに行くべきかについて、誰かが良い指針を持っていますか?