Ajaxを使用して、自分が作業しているサイトのユーザーのパスワードを変更しようとする際に、奇妙な問題が発生しています。基本的には、ユーザー名、古いパスワード、新しいパスワードを2回入力できるフォームがあります。そこからJQueryが引き継ぎ、Ajaxリクエストを行います(私は同じ結果を持つ.postと.getをPHPページに試みました)。 PHPページは、基本的なエラーチェックを行い(すべてのフィールドが満たされていること、新しいパスワードが一致すること、新しいパスワードがすべての複雑さの要件を満たすことを確認する)、simplexml_load_file()を使用して、Webサービスリクエストはurlencoded getパラメータを持つURL経由であり、XMLを返します)、実際にユーザのパスワードが変更されます。Ajaxを使用してユーザーのパスワードを変更する際の問題
複雑さの要件を満たしていないパスワードでリクエストすると、Webサービスへのリクエストが呼び出されることはなく、Ajaxリクエストはうまく動作します。フォームフィールドがないリクエストを作成している間、同じことが起こります。
getパラメータを手動で入力してPHPページに直接アクセスしてリクエストを行う際、すべてが計画どおりに機能します。
この問題は、Ajaxを使用して良好なパスワードですべてのフィールドを入力しようとすると発生します。私は、次のエラーが表示されます。ここ
uncaught exception: [Exception... "Could not convert JavaScript argument arg 0 [nsIDOMDocumentFragment.appendChild]" nsresult: "0x80570009 (NS_ERROR_XPC_BAD_CONVERT_JS)" location: "JS frame :: path-to/jquery-1.6.2.min.js :: <TOP_LEVEL> :: line 18" data: no]
は私のjavascriptです:
function makePasswordRequest() {
email = $("#email").val();
currentPassword = $("#currentPassword").val();
newPassword = $("#newPassword").val();
newPasswordRetype = $("#newPasswordRetype").val();
$.get("../changeUserPassword.php", {
"email": email,
"currentPassword": currentPassword,
"newPassword": newPassword,
"newPasswordRetype": newPasswordRetype
},
function(data){
if(data.PasswordChanged){
$("#notificationArea").addClass("success");
}
else{
$("#notificationArea").addClass("failure");
}
$("#notificationArea").html(data.MessageString);
}, "json");
};
$(document).ready(function(){
$("#passwordChangeForm").submit(function(e){
e.preventDefault();
makePasswordRequest();
});
});
任意のアイデア?