เพิ่ม Proxy และ checkout
เพิ่ม config proxy
- โดยปกติ เราจะมีการป้องกัน CORS เอาไว้่เพื่อไม่ให้ domain ใดๆยิงเข้ามาโดยตรงได้
- เราจะทำแบบเดียวกัน โดยเราจะให้ proxy เข้า cloud function ในฐานะ host เดียวกันเพื่อไม่ติด CORS
ที่ vite.config.js
import { fileURLToPath, URL } from 'node:url'
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
// https://vitejs.dev/config/
export default defineConfig({
server: {
proxy: {
'/api': { // เพิ่มตรงนี้เข้ามา
target: 'http://127.0.0.1:5010/<project_name>/us-central1/api',
changeOrigin: true,
rewrite: (path) => path.replace(/^\/api/, ''),
}
}
},
plugins: [
vue(),
],
resolve: {
alias: {
'@': fileURLToPath(new URL('./src', import.meta.url))
}
}
})
เมื่อ setup เรียบร้อย จากนี้เวลายิงเข้า
http://127.0.0.1:5010/<project_name>/us-central1/api/placeorder
จะมีค่าเทียบเท่ากับ path นี้ เมื่อยิงผ่าน /api ของ path vue
http://127.0.0.1:5173/api/placeorder
ลง axios และ ยิง API
- ลง library axios สำหรับยิง API เข้า POST /api/placeorder ในฝั่ง Backend
- ส่ง token ผ่าน header ของ axios และปั้น request body หน้าตาแบบที่ spec กำหนดเอาไว้
- return มาเป็น success url (บทนี้เราจะแค่ console.log เอาไว้ก่อน เราจะมาเชื่อมให้ครบในบท omise)
ลง library axios โดย
npm install axios