0

編集: postメソッドをgetメソッドに変更しましたが、すべてが正常に機能しました。さらに調査し、その理由がわかれば答えを追加します。私は他の場所で投稿を使用しているので、これから見ていきます...

私はこの質問に対する答えを探し回っていますが、これまでのところ役に立ったものは何も見つかりませんでした。jqueryの.submit関数を使用してデータをシリアル化し、ajaxを介してphpスクリプトに投稿する単純なフォームがあります。これはすべて私のローカルホストでうまく機能しますが、サーバーに公開すると、フィールド値は投稿されません。

フォームは次のとおりです。

<div id="loginDiv">
 <form  id="login" class="form-inline pull-right">
  <input id="loginVal" name="loginVal" type="password" class="input-small" />
   &nbsp;<button type="submit" class="btn btn-success">Log In</button>
 </form>
</div>

送信関数と成功コールバック関数は次のとおりです。

// ajax function to login to session
$(document).ready(function() {
 $("#login").submit(function() {
  $.post(
   "functions/sessionLogin.php",
   $("#login").serialize(),
   //{"loginVal":"CHAPMANADMIN"}, (this was just to troubleshoot)
   function(json) {
    parseReturnedLogin(json);
   }
  );
  return false;
 });
});

// login success handler
function parseReturnedLogin(data) {
 var obj = jQuery.parseJSON(data);
 $("#loginDiv").html("<p class=\"navbar-text pull-right\">Logged in as <span 
  style=\"color:#0088cc\">"+obj.priveleges+"</span></p>");
}

これは、ローカルホストで取得したヘッダーと応答の例です。

リクエスト方法:POSTステータスコード:200OK

受け入れる:/

X-Requested-With:XMLHttpRequest

フォームデータ:loginVal:CHAPMANADMIN

応答:{"user": "CHAPMANADMIN"、 "priveleges": "Administrator"、 "sessid": "pvigqmcfumlbiu13esiojg1n74"}

これは、サーバーで取得したヘッダーと応答の例です。

リクエスト方法:POSTステータスコード:200OK

受け入れる:/

X-Requested-With:XMLHttpRequest

フォームデータ:loginVal:CHAPMANADMIN

応答:{"user": ""、 "priveleges": ""、 "sessid": "o2nf69vc2tdd8hc8n0usas4010"}

ライブサーバーのクエリは空の値で実行されています。この同じサーバー上に他のAJAXアプリケーションがあり、同様のセットアップで正常に動作するため、何が起こっているのかわからないため、専門家からのアドバイスやトラブルシューティングの指示が必要です。

4

2 に答える 2

0

フォームは正常に機能しますが、応答が正しくありません。サーバーのサーバー検証機能と、正常に機能するdb接続を確認してください。

さらに調査するためにスクリプトを投稿してください。

これらの状況をデバッグするために、Firefoxを使用してFirebug拡張機能でリクエスト/レスポンスをチェックします。

于 2012-05-16T14:21:00.720 に答える
0

これは、$_POST変数でmysql_real_escape_stringを使用する際の問題になりました。コードをmysqlからPDO関数に変換しましたが、mysql接続が機能する必要があるmysql_real_escape_string関数を削除しませんでした。そうしないと、falseが返されます。

このコードをサーバーに投稿したとき、アクティブなmysql接続がなかったため、関数はfalseを返し、変数の値をfalseに設定しました。

これが将来同じ愚かな過ちから誰かを助けることを願っています。

于 2012-05-31T20:23:46.533 に答える