ホームページ >バックエンド開発 >PHPチュートリアル >jQuery+PHPで作成したC/S型Webページ、サーバーが応答しない

jQuery+PHPで作成したC/S型Webページ、サーバーが応答しない

WBOY
WBOYオリジナル
2016-06-23 13:28:451007ブラウズ

クライアント側のキー jQuery コード
$('#submit').click(function(e){
var username=$('#name').val();
var pwd=$('#pwd') . val();
var message=$('#message').val();
$.post("Validate2.php",
{username:username,pwd:pwd,message:message},
function( response ){
alert("response.status="+response.status); //リターンステータスダイアログボックスを出力します
"json"
);

サーバーキーPHP コード

$query="メッセージに値を挿入(12345,"what","1222")"
$result=$mysqli->query($query);

$response['status']= "TRUE";
echo json_encode($response);
$mysqli->close();

操作後、新しいデータが追加されました。 ,
ただし、$response['status']=TRUE をクライアントに返すことはできません,




ディスカッションに返信 (解決策)

BOM ヘッダーがあるかどうか確認してください
わかりません == 何をBOM ヘッダーはどういう意味ですか?クライアント側では、まず eval(response) を使用して json オブジェクトを作成してから、その response.status プロパティを呼び出します。

以前にこの問題に遭遇したことがありますが、それはクライアントに返されないのではなく、クライアントが json 文字列を json オブジェクトに変換せずに文字列を受け取るだけです。 client first json オブジェクトが作成された後でのみ、その response.status プロパティを呼び出すことができます。

以前にこの問題に遭遇したことがあります。それはクライアントに返されないのではなく、クライアントが json 文字列を json オブジェクトに変換せずに文字列だけを受け取ることです。 client first ) JSON オブジェクトを作成してから、その response.status プロパティを呼び出すことができます。

しかし、これは、サーバー $query="insert into Messagesvalues(12345,"what","1222")"

を "select * from Messages;" のようなデータベース上のクエリに変更した場合に当てはまります。 " TRUE が受け取られます

あるいは、mysqli->query() の前に TRUE 行を移動すると、受け取ることができます



以前にもこの問題に遭遇したことがあります。クライアントに返されないわけではありませんが、クライアントが文字列を受信しただけで、json 文字列が json オブジェクトに変換されていない場合、クライアントは、response.status プロパティを使用する前に、まず eval(response) を使用して json オブジェクトを作成します。と呼ばれた。

しかし、これは、サーバー $query="insert into Messagesvalues(12345,"what","1222")"

を "select * from Messages;" のようなデータベース上のクエリに変更した場合に当てはまります。 " TRUE が受信されます

または、TRUE 行を mysqli->query() の前に移動すると、受信できます

奇妙なことです。 。 。 。 。前例のない現象
サーバーが返す内容を出力して見てください。json についてはまだ説明しません。

json パラメーターを削除します。
var username=$('#name').val();
var pwd=$('#pwd').val();
var message=$('#message').val(); .post("Validate2.php",
{username:username,pwd:pwd,message:message}, function(response){ alert("response.status="+response.status); // リターンステータスを出力ダイアログ

},
" json"
);
e.preventDefault()
}); 次に、php 側で file_put_contents('sos.txt', json_encode($_REQUEST), true); を使用します。
実行後、sos.txt の内容を確認してください。正しいパラメータは送信したパラメータであるはずです。

完了...将来誰かが同じ問題を検索する場合に備えて説明します...
投稿者である Xiaobai は、次の場合に
ini_set("display_errors", "on") を php の最初の行に追加する必要があります; // エラー メッセージを出力します

もう一度テストして、
致命的なエラーを見つけます: /var/www/html/Validate2.php の 60 行目でメンバー関数 free() を呼び出します
つまり、1が返されます 0 無料のものを削除する必要があります...削除した後は大丈夫です...


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。