編集: 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" />
<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アプリケーションがあり、同様のセットアップで正常に動作するため、何が起こっているのかわからないため、専門家からのアドバイスやトラブルシューティングの指示が必要です。