[Axios] Vuejs / React ํ™˜๊ฒฝ์—์„œ axios ๋ชจ๋“ˆ get/post ํ†ต์‹  ์—๋Ÿฌ

    ๋ฐ˜์‘ํ˜•

    1. ํ”„๋กœ์ ํŠธ ํ™˜๊ฒฝ

    - html ๋ฒ ์ด์Šค๋กœ ํ”„๋ก ํŠธ์—์„œ Vuejs ์‚ฌ์šฉ ์ค‘

    - Vuejs ๋ฒ„์ „ 2.6.14

    - axios ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ฒ„์ „ 0.26.1

     

    2. ๋ฌธ์ œ ์ƒํ™ฉ

    - axios ๋ฅผ ์ด์šฉํ•˜์—ฌ ajax ํ†ต์‹ ์„ backend ์™€ ์ง„ํ–‰.

    comm.post({
        context: 'common_web',
        url: "/push/token/save",
        params: {
            pushToken: token,
            mobileOs: comm.mobile.os
        }
    }, function (data) {});

     

     

    ์œ„ ์ฝ”๋“œ๋Š” /common_web/push/token/save URL ๋กœ POST ์š”์ฒญ์„ ๋ณด๋‚ด๋Š” ajax ์ •์˜ ํ•จ์ˆ˜์ด๋‹ค.

    ํ•ด๋‹น ํ†ต์‹ ์„ ์‹คํ–‰ํ•˜์˜€์„ ๋•Œ, Response ๋‚ด์šฉ์ด ์•„์˜ˆ ์—†๋Š” ์ƒํ™ฉ์ด ๋ฐœ์ƒํ•œ๋‹ค.

    ํŠน์ง•์œผ๋กœ๋Š” Response ์— ๋‹ด๊ฒจ์˜ค๋Š” ๋‚ด์šฉ ์ž์ฒด๊ฐ€ ์—†์œผ๋ฉฐ

    axios ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ response ์ƒํ™ฉ์—์„œ๋Š” 'Network Error' ๋ผ๊ณ ๋งŒ ๋‚˜์˜จ๋‹ค.

    ํ•ด๋‹น ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒ๋˜๋Š” ํŠน์ • ์ง€์ ์€ ๋ฐœ๊ฒฌํ•˜๊ธฐ ํž˜๋“œ๋ฉฐ, ํ•ด๋‹น URL์˜ Response ๋˜ํ•œ

    200 OK ๋ฅผ ๋ฌด์กฐ๊ฑด ๋ฆฌํ„ดํ•˜๋Š” URL ์ž„์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  Network Error ๊ฐ€ "IOS ์•ฑ(์›น๋ทฐ์‚ฌ์šฉ)" ์ƒํ™ฉ์—์„œ๋งŒ ๋ฐœ์ƒํ•œ๋‹ค.

     

    3. ๋ฌธ์ œ ํ•ด๊ฒฐ ์‹œ๋„

    Google ์— ๊ฒ€์ƒ‰ ์‹œ, ์•„๋ž˜์™€ ๊ฐ™์ด ๊ฒ€์ƒ‰ํ–ˆ๋‹ค.

    #๋งํฌ

    ๋ฌธ์ œ๋ฅผ ์ฐพ์•„๋ณธ ๊ฒฐ๊ณผ, axios ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ชฝ์—์„œ๋„ ์‚ฌ๋žŒ๋“ค์ด ์ง€์†์ ์œผ๋กœ ๋ฌธ์ œ ์ œ๊ธฐ๋งŒ ํ•  ๋ฟ, ์ด๋ ‡๋‹ค ํ•  ํ•ด๊ฒฐ์ฑ…์ด ์—†์œผ๋ฉฐ

    IOS12 ๋ถ€ํ„ฐ ์ง€์†์ ์œผ๋กœ ๋ฐœ์ƒํ•œ ๋ฌธ์ œ์ž„์„ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ๋‹ค.

    ํ•ด๋‹น ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ ๋‚ด์—์„œ ๊ฒฐ๊ตญ ํ•ด๊ฒฐ์ฑ…์œผ๋กœ๋Š” ์™„๋ฒฝํ•˜์ง„ ์•Š์ง€๋งŒ

    axios ๋ชจ๋“ˆ ๋Œ€์‹  ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š” ajax ํ†ต์‹ ์„ ๋‹ค๋ฅธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜, ์ง์ ‘ ๊ตฌํ˜„ํ•  ๊ฒƒ์„ ๊ถŒ๊ณ  ํ–ˆ๋‹ค.

     

    4. ํ•ด๊ฒฐ

    var xhr = new XMLHttpRequest();
    xhr.open('POST', url, true);
    xhr.setRequestHeader('Content-type', 'application/json');
    xhr.send(JSON.stringify(params));
    xhr.onload = function () {
        // do something to response
        console.log("setPushToken result : " + this.responseText);
    };

     

     

    ์œ„์™€ ๊ฐ™์ด ํ•ด๋‹น URL๋กœ POST ์š”์ฒญ์„ Xhr Request ๋กœ ๋ณด๋‚ด๋Š” ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค์–ด ์‚ฌ์šฉํ•˜์˜€๋‹ค.

    ์ตœ์ดˆ ์–ธ๊ธ‰ํ•œ ๋ฌธ์ œ๋Š” ํ•ด๊ฒฐ ๋˜์—ˆ๋‹ค.

    ๋งŒ์•ฝ ์‹ ๊ทœ ์‚ฌ์—…์ด๋‚˜ ๊ธฐํƒ€ ๋‹ค๋ฅธ ํ”„๋กœ์ ํŠธ์—์„œ IOS ๋ชจ๋ฐ”์ผ ํ™˜๊ฒฝ์„ ์ง€์›ํ•˜๋„๋ก ํ•˜๋Š” ํ”„๋กœ์ ํŠธ๊ฐ€ ์žˆ๊ณ 

    ํ”„๋ก ํŠธ์—์„œ axios ๋ชจ๋“ˆ์„ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด, ์œ„ ์‚ฌํ•ญ์€ ์ถฉ๋ถ„ํžˆ ๊ณ ๋ คํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค.

    ๋ฐฉ๋ฒ•์€ ์—ฌ๋Ÿฌ๊ฐ€์ง€๊ฐ€ ์žˆ๊ฒ ์ง€๋งŒ ์•„๋ž˜ ๋ฐฉ๋ฒ• ์ •๋„๊ฐ€ ์šฐ์„  ํŒŒ์•…๋œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ด๋‹ค.

     

    1. ios ์ผ๋•Œ๋งŒ ๊ตฌ๋ถ„์„ ์ฃผ์–ด, ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธฐ๋Š” ๊ตฌ๊ฐ„์— ์œ„ ์ฒ˜๋Ÿผ ์ƒˆ๋กœ ์ •์˜ํ•˜์—ฌ ํ†ต์‹ ํ•œ๋‹ค.
    2. ๊ณตํ†ต ajax ํ†ต์‹  ๊ตฌ๊ฐ„ ํ•จ์ˆ˜๋ฅผ ์žก์„ ๋•Œ, axios ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋Œ€์‹  ๋‹ค๋ฅธ ๊ฒƒ์„ ์‚ฌ์šฉํ•œ๋‹ค.

     

     

     

     

    728x90
    ๋ฐ˜์‘ํ˜•

    ๋Œ“๊ธ€