Mungkin saya luruskan dulu pengertian CORS nya.
Sebenernya "CORS error" di browser terjadi karena browser Fetch API tunduk sama same-origin policy
.
Jadi defaultnya, JavaScript yang di serve di situs https://domain-a.com tidak dibolehkan browser melakukan http request ke https://domain-b.com/data.json.
Justru CORS (Cross-Origin-Resource-Sharing) itu mekanisme yang membolehkan kode JavaScript yang di browser yang di serve di https://domain-a.com untuk melakukan http request ke domain lain contohnya https://domain-b.com/data.json.
Implementasinya seperti apa?
Melalui http header Access-Control-Allow-Origin
dari server.
Kalau misalnya http header itu valuenya *, berarti CORS enabled, jadi javascript dari website apapun dibolehkan browser mengakses resources dari server tersebut.
Kalau misalnya header tersebut gak dikasih sama server, defaultnya si browser gak ngijinin akses.
Headernya missing, tapi kenapa di Postman bisa akses?
Karena Postman tidak tunduk dengan same-origin policy
, jadi gak peduli ada atau tidaknya header tersebut.
CORS Proxy ini apa?
Jadi kita frontend developer kadang gak bisa modifikasi servernya untuk menambahkan http header Access-Control-Allow-Origin
.
Tapi kita yakin response dari server itu aman utuk user yang mengakses website kita.
Solusinya, buat server baru yang melakukan http request ke server
Apakah server buatan tidak kena CORS?
Di sini pertanyaanya agak membingungungkan, kalau misalnya yang dimaksud "kena CORS" itu kena "Kena CORS error", jawabannya tidak.
Karena server proxy di sini dibuat utuk tidak mempedulikan ada atau tidaknya http header Access-Control-Allow-Origin
.
Tapi kalau misalnya "kena CORS" maksudnya server gak nerima http header tersebut?
Jawabannya kena juga, tapi server proxy ini gak peduli aja.
Terus server proxy ini udah di enabled CORSnya, jadi dikasih nama CORS Proxy.
Untuk pengertian CORS lebih lanjut: https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS