Ajax 請求參數過多致使 400 錯誤 and BCryptPasswordEncoder 加密判斷

2019/06/19ajax

先分享一種密碼加密方式;api

Spring Security 提供了app

BCryptPasswordEncoder類,post

實現Spring的PasswordEncoder接口使用BCrypt強哈希方法來加密密碼。加密

BCrypt強哈希方法 每次加密的結果都不同。url

除了加密之外還能比較密碼spa

加密:

BCryptPasswordEncoder encode = new BCryptPasswordEncoder();
encode.encode(password);
判斷:

須要經過自帶的方法 matches 將未通過加密的密碼和已通過加密的密碼傳進去進行判斷,返回布爾值。

encode.matches(oldpassword,user1.getPassword());

下面再看Ajax請求問題code

post方式是由無限制的,而url是有限制的,那麼就將url與傳遞的參數分開。orm

第一種方法 使用原生態的aiax的postxml

//建立請求
    var xmlhttp;
    if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari
        xmlhttp = new XMLHttpRequest();
    }
    else {// code for IE6, IE5
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
    //指定連接和參數
    xmlhttp.open("POST", "/DLWeb/api/WbsNode/EditPMLog?", false);
    xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");//指定header
    xmlhttp.send(par);
    //響應請求
    xmlhttp.onreadystatechange = function () {
        if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {//成功
            if (xmlhttp.responseText == "true")
            {
                alert("成功");
            }
            else {//失敗
                alert("失敗");

            }
           
        }
       
    }

第二種方法 使用 ajax簡化版請求方式

$.post or $.get

格式爲

$.請求方式(請求地址,數據,成功回調方法);

請求地址不能省略,其餘兩個均可以省略,按照本身需求寫。

相關文章
相關標籤/搜索