Frage

Ich mache Verschlüsselung für Benutzername und Passwort in JavaScript mit dem Jcryption-Algorithmus.und Entschlüsselung mit Java .in diesem Prozess wird vor Abschluss des Verschlüsselungsprozesses in JavaScript-Form gesendet.In Java erhalte ich keine verschlüsselten Benutzernamen und Passwörter.und ich erhalte normale Werte, so dass ich daran gehindert werde, Formulare zu senden und Code in das Formular zu schreiben, nachdem der Verschlüsselungsprozess abgeschlossen ist.gib mir Vorschläge, ob es eine Möglichkeit gibt, Probleme zu lösen.oder eine alternative Möglichkeit, Probleme zu lösen.

Danke im Voraus

Mein HTML-Code

    <form name="frm" method="post" action="/xsl-portal/xlogin" onSubmit="" target="_parent"  autocomplete="off"> 
       <input type="text" maxlength="45"  name="eid1" id="eid1" />
       <input type="hidden" maxlength="45" id="eid" name="eid" />
       <input type="password" id="pw" name="pw" />
       <input type="image" src="home-images/button-submit.png" id="submitButton" value="Submit" name="image"  onclick="submitButtonClick();" />

<input type="hidden" value="" name="submit" id="submit"/> 
    </form>
Javascript code
    var keys='';

    function getKeys() {
        $.jCryption.getKeys("/sakai-login-tool/EncryptionServlet?generateKeypair=true", function(
            receivedKeys) {
            keys = receivedKeys;        

        });
    }
    getKeys();
    var encryptedUser='';
    var encryptedPassword='';   

/* formular absenden Code*/

// $('#submitButton').on('click',function(){
            function submitButtonClick(){ 



            }
        // });

$('form').submit(function(e) {
               e.preventDefault();
                var user=$('#eid1').val();
                    var password=$('#pw').val();

                    encryptionProcess(user,password).pipe(applyValues).pipe(function(){

                        console.log("eid"+$('#eid').val());
                    console.log("pw"+$('#pw').val());
                    $('form').submit();
                    });
    })

;
    function encryptionProcess(user,password){
        var d= $.Deferred();
        setTimeout(function() {
            $.jCryption.encrypt(user, keys, function(encrypted) {
                encryptedUser = encrypted;
                console.log("printing user encryption:"+encryptedUser);
            });
            $.jCryption.encrypt(password, keys, function(encryptedPasswd) {
                encryptedPassword = encryptedPasswd;                    /**
                 * As both userName and password are encrypted now Submit login
                 */
                 console.log("printing password encryption:"+encryptedPassword);
                });
              d.resolve();
        }, 10);
    return d.promise();         
    }
    function applyValues(){
        var d1= $.Deferred();
        setTimeout(function() {
            $('#eid').val(encryptedUser);
            $('#pw').val(encryptedPassword);
          d1.resolve();
        }, 10);
        return d1.promise();
    }
War es hilfreich?

Lösung

es ist wegen $('form').submit();.Da Sie den JQUERY () sendenZyklus

Ändern Sie es, um das DOM-Element von Senden () Methode, die nicht zum Aufruf von Sendeneignishandlern führt.

generasacodicetagpre.

Andere Tipps

Ändern Sie Ihre submit taste, um eine normale Taste zu sein.Achten Sie auf den Klick auf diese Schaltfläche und innerhalb dieses Handleraufrufs $('form').submit();

Die Art und Weise, wie Sie es derzeit tun, führt zu rekursiven Übermittlungen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top