πŸ”₯Error

[Axios] Vuejs / React ν™˜κ²½μ—μ„œ axios λͺ¨λ“ˆ get/post 톡신 μ—λŸ¬

harry.93 2022. 3. 25. 17:54
λ°˜μ‘ν˜•

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
λ°˜μ‘ν˜•