CORS
CORS (Cross-Origin Resource Sharing)
Mekanisme keamanan browser yang memungkinkan halaman web untuk meminta sumber daya dari domain lain dengan cara yang terkontrol, melindungi pengguna dari akses data lintas situs yang tidak sah.
Detail Teknis
CORS memperluas same-origin policy melalui header HTTP. Permintaan sederhana (GET/POST dengan tipe konten standar) menyertakan header Origin — server merespons dengan Access-Control-Allow-Origin: * atau origin tertentu. Permintaan preflight (metode non-standar, header kustom) mengirim OPTIONS terlebih dahulu: Access-Control-Request-Method, Access-Control-Request-Headers. Server merespons dengan header Allow-* dan Access-Control-Max-Age (durasi cache preflight). Header penting: Access-Control-Allow-Credentials: true (memerlukan origin spesifik, bukan wildcard), Access-Control-Expose-Headers (header mana yang dapat dibaca JS). Kesalahan umum: wildcard (*) dengan credentials, header Allow-Origin yang hilang. Mengatasi dalam pengembangan: proxy dev server, ekstensi browser, atau header sisi server. Perhatikan: CORS adalah kebijakan browser — klien non-browser (curl, server) mengabaikannya.
Contoh
```javascript
// CORS: web API example
const response = await fetch('/api/resource');
const data = await response.json();
console.log(data);
```