A kereszteredetű erőforrások megosztása ( CORS ; angolul - "sharing resources between different sources")modern böngészők technológiája, amely lehetővé teszi, hogy a weboldalak hozzáférést biztosítsanak egy másik domain erőforrásaihoz .
Három tartomány teszi lehetővé az erőforrások letöltését az U szerverről. Ahhoz, hogy ez lehetséges legyen, a tartalmat adó U webszervernek csak meg kell adnia a megbízható tartományok listáját az Access-Control-Allow-Origin mezőben. válaszfejléc : A, B, C. Ekkor ezeknek a domaineknek az oldalaira nem érvényesek az azonos származás elvének korlátozásai a kért oldalakon:
Access-Control-Allow-Origin: A, B, C
Ezt követően az A, B, C domain oldalai letölthetnek tartalmat az U szerverről.
PHP esetén ez a header() függvény meghívásával történik:
<?php header ( "Access-Control-Allow-Origin: http://example.com" ); ?>A több eredetre vonatkozó kérés inicializálásához az ügyfélböngésző hozzáadja az Origin ( a kérelem származási helyének tartománya ) jelzését a HTTP -kéréshez. Például a http://www.a.com/page.html oldal megpróbál adatokat lekérni a http://www.b.com/cors.txt oldalról. Ha az ügyfélböngésző támogatja a CORS technológiát, a kérés így fog kinézni:
GET /cors.txt HTTP/1.1 Házigazda: www.b.com Származási hely: www.a.comHa a www.b.com szerver lehetővé teszi adatok fogadását a www.a.com webhelyről, akkor a szerver válasza a következő sort tartalmazza:
Access-Control-Allow-Origin: http://www.a.comHa ez a sor hiányzik a szerver válaszából , akkor a CORS technológiát támogató böngésző hibakódot ad vissza adatok helyett.
Abban az esetben, ha a szerver hozzáférést szeretne engedélyezni bármely tartomány oldalaihoz , a válaszban megadhatja:
Access-Control-Allow-Origin: *Ha a szerver egynél több tartományhoz szeretne hozzáférést engedélyezni , akkor a kiszolgáló válaszának minden tartományhoz tartalmaznia kell egy Access-Control-Allow-Origin sort .
Access-Control-Allow-Origin: http://www.a.com Access-Control-Allow-Origin: http://www.b.com Access-Control-Allow-Origin: http://www.c.comA gyakorlatban gyakrabban használnak több tartományból származó rekordot , szóközzel elválasztva [1] :
Access-Control-Allow-Origin: http://www.a.com http://www.b.com http://www.c.comA CORS technológia a JSONP modernebb és megbízhatóbb alternatívájaként használható, mivel lehetővé teszi az XMLHttpRequest teljes előnyeinek kihasználását , és a JSONP-vel ellentétben nincs sebezhető az SQL injekcióval szemben. . Másrészt a CORS technológia speciális támogatást igényel a böngészőkódban , míg a JSONP nem függ ettől.