約 1 年前に、ユーザー パスワードを変更するために PHP ページに ajax 呼び出しを行う JQuery/Javascript スクリプトを作成しました。今日の初めに、ajax 呼び出しが機能しなくなったという苦情が寄せられ始めました。パスワード変更フォームを送信しようとすると、次のエラーが表示されます。
JavaScript 引数 arg 0 [nsIDOMDocumentFragment.appendChild] を変換できませんでした http://www.site.com/js/jquery-1.4.4.min.js 行 124
このエラーが発生しても、ユーザーのパスワードが変更され、PHP からの出力は、本来あるべきものとまったく同じです...適切にフォーマットされた json 文字列:
{"Authenticated":{"0":"false"},"MessageString":{"0":"Your User Password Was Changed Successfully."},"PasswordChanged":{"0":"true"}}
このプロジェクトに関連するファイルは数か月間変更されておらず、このフォームは 1 日に少なくとも数回使用されているため、なぜ突然機能しなくなったのかわかりません。
これが私が実行しているスクリプトで、JQuery 1.4.4 で実行しています。
function makePasswordRequest() {
email = jQuery("#email").val();
currentPassword = jQuery("#currentPassword").val();
newPassword = jQuery("#newPassword").val();
newPasswordRetype = jQuery("#newPasswordRetype").val();
jQuery.post("../changeUserPassword.php", {
email: email,
currentPassword: currentPassword,
newPassword: newPassword,
newPasswordRetype: newPasswordRetype
},
function(data){
if(data.PasswordChanged[0] == true || data.PasswordChanged[0] == "true"){
jQuery("#notificationArea").removeClass("failure");
jQuery("#notificationArea").addClass("success");
}
else{
jQuery("#notificationArea").removeClass("success");
jQuery("#notificationArea").addClass("failure");
}
jQuery("#notificationArea").html(data.MessageString);
}, "json");
};
function resetPasswordRequest() {
email = jQuery("#email2").val();
jQuery.post("../resetUserPassword.php", {
email: email,
},
function(data){
if(data.PasswordChanged[0] == true || data.PasswordChanged[0] == "true"){
jQuery("#notificationArea2").removeClass("failure");
jQuery("#notificationArea2").addClass("success");
}
else{
jQuery("#notificationArea2").removeClass("success");
jQuery("#notificationArea2").addClass("failure");
}
jQuery("#notificationArea2").html(data.MessageString);
}, "json");
};
jQuery(document).ready(function(){
jQuery("#passwordChangeForm").submit(function(e){
e.preventDefault();
makePasswordRequest();
});
jQuery("#passwordResetForm").submit(function(e){
e.preventDefault();
resetPasswordRequest();
});
});
特に昨年はうまく機能していたので、何が問題なのかわかりません。どんな助けでも大歓迎です!