リーリー
そうです、私の目的は、パスワードを送信する前にパスワードに対して md5 計算を実行し、パスワードを暗号化して送信することです。
しかし、実際の効果は、パスワード値が 123 の場合、alert($('#password').val()) は正しく 202cb962ac59075b964b07152d234b70 を出力しますが、バックグラウンドの PHP に投稿した後は、まだ 123 のままです。
data:$('#form1').serialize() は beforeSend より前の値を既に取得しているため、古い値が後の値に渡されたままになっているような気がします。
テスト後、md5暗号化部分を取り出して$.ajax()の前に置いて動作させれば問題ありません。このように使用するのは不便です。 beforeSendの後にserialize()を実行する方法はありますか?
補足:
@lisfan が提供するメソッドを使用すると、正常に投稿できます
しかし、バックグラウンドPHPの$_REQUESTも$_POSTもデータを受信できません。以下に示すように:
以下はfirebugで見たpostデータです。 上記はそれぞれ$_REQUEST、$_POST、php://inputを出力したデータです。 file_get_contents("php://input)に元のデータが表示されていることがわかります。 ") ですが、なぜ $_POST にカプセル化されないのでしょうか?
.
返信内容:
リーリーそうです、私の目的は、パスワードを送信する前にパスワードに対して md5 計算を実行し、パスワードを暗号化して送信する機能を実現することです。
しかし、実際の効果は、パスワード値が 123 の場合、alert($('#password').val()) は正しく 202cb962ac59075b964b07152d234b70 を出力しますが、バックグラウンドの PHP に投稿した後は、まだ 123 のままです。
data:$('#form1').serialize() は beforeSend より前の値を既に取得しているため、古い値が後の値に渡されたままになっているような気がします。
テスト後、md5暗号化部分を取り出して$.ajax()の前に置いて動作させれば問題ありません。このように使用するのは不便です。 beforeSendの後にserialize()を実行する方法はありますか?
補足:
@lisfan が提供するメソッドを使用すると、正常に投稿できます
しかし、バックグラウンドphpの$_REQUESTも$_POSTもデータを受け取ることができません。以下に示すように:
以下はfirebugで見たpostデータです。 上記はそれぞれ$_REQUEST、$_POST、php://inputを出力したデータです。 file_get_contents("php://input)に元のデータが表示されていることがわかります。 ") ですが、なぜ $_POST にカプセル化されないのでしょうか?
.
元の質問の構造を変更せずに、次のように変更して、*
アスタリスク
$.AJAX() リクエストを送信する前にパスワードを処理することができます。つまり、まず beforeSend 関数の内容を処理してからリクエストを送信し、$('#form1').serialize() のデータを保存します。正しいです
これは、関数 $('#form1').serialize() が beforeSend の前に呼び出されることを示しています。
検証機能でパスワードを入力する際、検証に合格した場合は、直接暗号化してフォームの非表示フィールドに割り当てることをお勧めします
リーリー
判断を取り除き、パスワード暗号化の背後に ajax を置きます。
これは、$.ajaxを実行すると、jsエンジンがリテラルオブジェクトを作成する際に、その時の$('#form1').serialize()の戻り値としてデータの値が格納されるためです。 、つまり 123 です。
次の例を確認できます:
var c=1;
var a={
};
console.log(a.b);// 1
a.d();//c=2
console.log(a.b);// 1
これで上記の問題が説明できます。
考えられる解決策は、リテラル オブジェクトを作成する前に md5 暗号化を移動することです。
まず第一に、パスワードの入力に md5 を割り当てる必要があるのはなぜですか? セキュリティ上のリスクはないのでしょうか?次に、beforeSend 関数は、Ajax メソッドの前ではなく、リクエストを送信する前に呼び出されます。ajax メソッドを呼び出すときは、すでにフォーム データを取り出して関数のパラメーターに設定しています。後でフォームの値を変更するにはどうすればよいですか。 Ajax データに関しては、まったく気まぐれです。 Ajaxメソッド呼び出しの前にパスワードmd5操作を入れるだけです
ajaxメソッドの前に暗号化されたパスワード文字列を準備します

去掉重复并排序的方法:1、使用“Array.from(new Set(arr))”或者“[…new Set(arr)]”语句,去掉数组中的重复元素,返回去重后的新数组;2、利用sort()对去重数组进行排序,语法“去重数组.sort()”。

本篇文章给大家带来了关于JavaScript的相关知识,其中主要介绍了关于Symbol类型、隐藏属性及全局注册表的相关问题,包括了Symbol类型的描述、Symbol不会隐式转字符串等问题,下面一起来看一下,希望对大家有帮助。

怎么制作文字轮播与图片轮播?大家第一想到的是不是利用js,其实利用纯CSS也能实现文字轮播与图片轮播,下面来看看实现方法,希望对大家有所帮助!

本篇文章给大家带来了关于JavaScript的相关知识,其中主要介绍了关于对象的构造函数和new操作符,构造函数是所有对象的成员方法中,最早被调用的那个,下面一起来看一下吧,希望对大家有帮助。

方法:1、利用“点击元素对象.unbind("click");”方法,该方法可以移除被选元素的事件处理程序;2、利用“点击元素对象.off("click");”方法,该方法可以移除通过on()方法添加的事件处理程序。

本篇文章给大家带来了关于JavaScript的相关知识,其中主要介绍了关于面向对象的相关问题,包括了属性描述符、数据描述符、存取描述符等等内容,下面一起来看一下,希望对大家有帮助。

foreach不是es6的方法。foreach是es3中一个遍历数组的方法,可以调用数组的每个元素,并将元素传给回调函数进行处理,语法“array.forEach(function(当前元素,索引,数组){...})”;该方法不处理空数组。

本篇文章给大家带来了关于JavaScript的相关知识,其中主要介绍了关于BOM操作的相关问题,包括了window对象的常见事件、JavaScript执行机制等等相关内容,下面一起来看一下,希望对大家有帮助。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

SublimeText3 中国語版
中国語版、とても使いやすい

Dreamweaver Mac版
ビジュアル Web 開発ツール

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

Safe Exam Browser
Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

ホットトピック



