エコーを使用して文字列をjavascript関数に送り返していますが、送信される文字列の長さは、js関数によって読み取られる長さより1短くなっています。Firebug Consoleの最初の文字を見ると、値は「」です。
echo "Success";
失敗したajax呼び出しによって返されたデータに対して比較を実行します。
if (data == "Success")
jQuery $ .trim関数を適用すると、成功します。
PHPファイルの最後にスペースがある可能性があります。ファイルがで終わっていないことを確認してください?>
(終わっている場合は削除してください)。それは常に、問題のあることに、出力に余分な空白をもたらします。
echo()
それはヌル文字を印刷しているのではなく、リターンを印刷していると思います。print()
代わりに使用してください。
この問題全体を回避するには、より多くの RESTful HTTP ステータス コードを使用して成功と失敗を表す (この場合、jQuery には特定の onFailure および onSuccess コールバックさえあります) か、JSON を使用して返される値をエンコードします。PHP で doecho json_encode(array('status' => 'success'));
を実行してから、jQuery で do を実行できますif(data['status'] == 'success')
。これにより、後で実際のデータを返すことにした場合に、コードがより将来的に保証されます。後で行う場合は、コンテンツ タイプが正しく設定されていることを確認するか、JSON を想定するよう jQuery に指示してください。