Contoh error CORS yang sering ditemui kurang lebih seperti dibawah ini
Origin https://api.jaranguda.com is not allowed by Access-Control-Allow-Origin
CORS harus disetting dari sisi server, bukan dari client. Bila backend anda belum disetting CORSnya dan anda menggunakan HAProxy, bisa menyetting CORS dengan cara berikut ini.
Download cors.lua
download cors.lua dari repository HAProxy
wget https://raw.githubusercontent.com/haproxytech/haproxy-lua-cors/master/lib/cors.lua -O /etc/haproxy/cors.lua
Setting CORS dengan HAProxy
Edit file /etc/haproxy/haproxy.cfg tambahkan dibawah global
lua-load /etc/haproxy/cors.lua
dibagian frontend tambahkan
http-request lua.cors http-response lua.cors "GET,PUT,POST,OPTIONS,PATCH" "api.jaranguda.com,dev-api.jaranguda.com,localhost:3000"
Bila anda mengijinkan API anda diakses oleh siapa saja (public) nama domain diatas cukup diganti dengan *
, kalo hanya untuk beberapa domain tambahkan domain-domain/ip yang diijinkan.
Contoh lengkap konfigurasi dasar HAProxy
global log stdout local0 lua-load /etc/haproxy/cors.lua defaults mode http timeout connect 5s timeout client 5s timeout server 5s log global frontend api-jaranguda bind :80 http-request lua.cors # localhost:3000 untuk local development http-response lua.cors "GET,PUT,POST,OPTIONS,PATCH" "api.jaranguda.com,dev-api.jaranguda.com,localhost:3000"