Lewati ke konten

CORS

@gaman/cors adalah middleware resmi untuk menangani CORS (Cross-Origin Resource Sharing) di framework GamanJS.
CORS dibutuhkan ketika aplikasi web frontend (misalnya React, Vue, Svelte, dsb) melakukan request ke server API yang domain/port-nya berbeda.

Tanpa CORS, browser akan memblokir request lintas-origin tersebut karena alasan keamanan.

GamanJS adalah kerangka kerja untuk aplikasi backend, Anda dapat menginstall menggunakan manajer paket favorit Anda:

Terminal window
npm install @gaman/cors

berikut adalah cara implementasi @gaman/cors

index.ts
import { cors } from "@gaman/cors"
defineBootstrap((app) => {
app.mount(
cors({ origin: '*' })
)
...
})

jika ingin spesifik ke route tertentu tinggal implementasi seperti berikut

AppRoutes.ts
import { cors } from "@gaman/cors"
route.get('/user').middleware(cors())

Disini banyak configurasi untuk @gaman/cors ini, berikut adalah penjelasannya

NamaTipeDefaultDeskripsi
originstring | string[]"*"Domain asal yang diizinkan. Bisa berupa string tunggal atau array.
allowMethodsstring[]["GET", "HEAD", "POST", "PUT", "DELETE", "OPTIONS"]Method HTTP yang diizinkan.
allowHeadersstring[] | nullnullHeader yang diizinkan. null berarti semua header diizinkan.
maxAgenumberundefinedWaktu cache preflight dalam detik.
credentialsbooleanfalseApakah mengizinkan kredensial (cookie, autentikasi HTTP, dll.).
exposeHeadersstring[][]Header yang dapat diekspos ke client.

Dan ada 3 lagi config bawaan middleware silakan cek halaman berikut Middleware Config.