๋ฐฑ์—”๋“œ(Back-End) ๊ฐœ๋ฐœ/Java

form ํƒœ๊ทธ ์ž…๋ ฅ๋ฐ›์€ ๋ฐ์ดํ„ฐ๋ฅผ ํŒŒ๋ผ๋ฏธํ„ฐ ํ˜•์‹์œผ๋กœ ํ•œ๊บผ๋ฒˆ์— ๋ฆฌํ„ด๋ฐ›๊ธฐ($("form").serialize() ํ•จ์ˆ˜)

rabo93 2025. 1. 8. 17:35
$(function() {
    const publicKey = '${publicKey}'; // ๊ณต๊ฐœํ‚ค ์ €์žฅ

    $("form").submit((e) => { // form ํƒœ๊ทธ submit ์ด๋ฒคํŠธ ํ•ธ๋“ค๋ง
// 				e.preventDefault();
        // ์ž…๋ ฅ๋ฐ›์€ ํšŒ์› ์ •๋ณด๋ฅผ ํŒŒ๋ผ๋ฏธํ„ฐ ํ˜•์‹์œผ๋กœ ํ•œ๊บผ๋ฒˆ์— ๋ฆฌํ„ด๋ฐ›๊ธฐ
        const serializedData = $("form").serialize();
        // => ํผ์— ๋Œ€ํ•œ serialize() ๋ฉ”์„œ๋“œ๋Š” ํผ ๋ฐ์ดํ„ฐ๋ฅผ ์ง๋ ฌํ™”ํ•˜๋Š”๋ฐ
        //    ์ด๋•Œ, ์ง๋ ฌํ™”์˜ ์˜๋ฏธ๋Š” ํผ ๋ฐ์ดํ„ฐ๋ฅผ ํŒŒ๋ผ๋ฏธํ„ฐ ํ˜•์‹์œผ๋กœ ์ผ๋ ฌ๋กœ ๋‚˜์—ดํ•œ๋‹ค๋Š” ์˜๋ฏธ
// 				console.log(serializedData);
        // name=bora&id=aa1111&passwd=1234&post_code=&address1=&address2=&email1=&email2=&job=&motivation=
        // ------------------------------------------
        // URLSearchParams ๊ฐ์ฒด ํ™œ์šฉํ•˜์—ฌ URL ํŒŒ๋ผ๋ฏธํ„ฐ ํ˜•์‹ ๋ฐ์ดํ„ฐ๋ฅผ ํ‚ค-๊ฐ’ ์Œ์„ ๊ฐ–๋Š” ๊ฐ์ฒด๋กœ ๋ณ€ํ™˜
        const params = new URLSearchParams(serializedData);
        // ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์ €์žฅํ•  ๊ฐ์ฒด ์ƒ์„ฑ
        let memberData = {};
        // URLSearchParams ๊ฐ์ฒด์˜ entries() ๋ฉ”์„œ๋“œ๋ฅผ ํ†ตํ•ด ๋ฐ˜๋ณต๋ฌธ์„ ํ™œ์šฉํ•˜์—ฌ
        // ๊ฐ๊ฐ์˜ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ key์™€ value๋กœ ๋ถ„๋ฆฌํ•˜์—ฌ result ๊ฐ์ฒด์— ์ถ”๊ฐ€
        for(const [key, value] of params.entries()) {
            memberData[key] = value;
        }	

        console.log(memberData); // ํšŒ์›๊ฐ€์ž… ์ •๋ณด JSON ๋ฌธ์ž์—ด๋กœ ๋ณด์—ฌ์ง


        // ------------------------------------------
        // JSEncrypt ๊ฐ์ฒด ์ƒ์„ฑ
        const jsEncrypt = new JSEncrypt();
        // JSencrypt ๊ฐ์ฒด์— ๊ณต๊ฐœํ‚ค ์ „๋‹ฌ
        jsEncrypt.setPublicKey(publicKey);

        let encryptedData = jsEncrypt.encrypt(JSON.stringify(memberData));
        $("form").prepend("<input type='hidden' name='encryptedData' value='" + encryptedData + "'>");

    });
});