๋ฌธ์ œ ํ•ด๊ฒฐ ๐Ÿ›  โ€“ vue

joyfulwaveยท2023๋…„ 4์›” 25์ผ
0

๋‚˜๋งŒ์˜ ์‚ฌ์ „ - VUE

๋ชฉ๋ก ๋ณด๊ธฐ
3/6
post-thumbnail

๐Ÿ”’ ๋ฌธ์ œ ์ƒํ™ฉ

๊ฒŒ์‹œํŒ์„ ๋งŒ๋“œ๋Š” ํ”„๋กœ์ ํŠธ์—์„œ ์ƒˆ ๊ธ€์„ ์ž‘์„ฑํ•˜์—ฌ API POST๋ฅผ ํ•˜์˜€๋Š”๋ฐ ์ž๊พธ MAXIMUM CALL STACK SIZE EXCEEDED ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค. ๋‚ด๊ฐ€ ์ „์†กํ•˜๋Š” data์˜ ํ˜•ํƒœ๋ฅผ ๋ณด๋‹ˆ {\"๋ฐ์ดํ„ฐ\" ...} ์™€ ๊ฐ™์€ ํ˜•์‹์œผ๋กœ ๋„˜์–ด๊ฐ€๊ณ  ์žˆ์—ˆ๋‹ค. ๊ตฌ๊ธ€์— ์ฐพ์•„๋ณด๋‹ˆ API GET ํ•  ๋•Œ ์™€ ๊ฐ™์ด ๋ณด๋‚ด๋ฉด ์•ˆ๋˜๊ณ  FormData์— ๋‹ด์•„ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฌถ์–ด ์ „์†กํ•ด์•ผํ•œ๋‹ค๊ณ  ํ•œ๋‹ค.

๐Ÿ”‘ ๋ฌธ์ œ ํ•ด๊ฒฐ

๋‚˜์™€ ๊ฐ™์€ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค๋ฉด ์•„๋ž˜์˜ ๋‘๊ฐ€์ง€๋ฅผ ํ™•์ธํ•ด๋ณด์ž

1. ๋ฐ์ดํ„ฐ ์ „์†ก (๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜๋Š” ์ปดํฌ๋„ŒํŠธ VUE ํŒŒ์ผ - board.vue)

[GET]

<script>
import {getData} from "@/ํด๋”๊ฒฝ๋กœ/board.js";
method: {
  getData(){
    let param = 20 //๊ฒŒ์‹œ๊ธ€ ๋ฒˆํ˜ธ
    getData(param) // ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ๋„˜๊ฒจ API ๋ฐ์ดํ„ฐ ๊ฐ€์ ธ์˜ค๊ธฐ
      .then((res) => {
      if(res.hasOwnProperty("rsp_msg") === false){
        // ๋ฐ์ดํ„ฐ๊ฐ€ ์„ฑ๊ณต์ ์œผ๋กœ ๋ฐ›์•„์กŒ์„ ๋•Œ ์‹คํ–‰ํ•  ๋กœ์ง
        console.log(res) // ๋ฐ›์•„์˜จ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ˜์†”๋กœ ์ถœ๋ ฅ
      }
    })
      .catch((error) => {
      console.log(error)
    })
  },
}
</script>

[POST]

<script>
import {sendData} from "@/ํด๋”๊ฒฝ๋กœ/board.js";
method: {
  postData(){
    let formData = new FormData();
    formData.append("title", "๊ฒŒ์‹œ๊ธ€ ์ œ๋ชฉ")
    formData.append("content", "๊ฒŒ์‹œ๊ธ€ ๋‚ด์šฉ")
    formData.append("writer", "์ž‘์„ฑ์ž")
    sendData(formData) // formData ํ˜•ํƒœ๋กœ ์ „์†กํ•˜๊ธฐ
      .then((res) => {
      if(res.hasOwnProperty("rsp_msg") === false){
        // ๋ฐ์ดํ„ฐ๊ฐ€ ์„ฑ๊ณต์ ์œผ๋กœ ์ „์†ก๋˜์—ˆ์„ ๋•Œ ์‹คํ–‰ํ•  ๋กœ์ง
        this.$router.go() // ์ƒˆ๋กœ ๊ณ ์นจ
      }
    })
      .catch((error) => {
      console.log(error)
    })
  },      
}
</script>

2. API ํ˜ธ์ถœ (API ํ˜ธ์ถœ JS ํŒŒ์ผ - board.js)

[GET]

export function getData(params){
  return request({
    url: "/api/์ฃผ์†Œ",
    method: "get",
    params : params,
  })
}

[POST]

export function sendData(params){
  return request({
    url: "/api/์ฃผ์†Œ",
    method: "post",
    data: params, // GET ๋ฐฉ์‹๊ณผ๋Š” ๋‹ค๋ฅด๊ฒŒ data ํ•ญ๋ชฉ ์ถ”๊ฐ€
    params : params,
  })
}

0๊ฐœ์˜ ๋Œ“๊ธ€