Je me réfère juste à la spec' CORS du W3C.
Server-side applications are enabled to discover that an HTTP request was deemed a cross-origin request by the user agent, through the Origin header.
Du coup, tu peux utiliser n'importe quel hostname qui ne soit pas celui sur lequel ton serveur tourne (donc pas localhost).
Essaie : Origin: http://google.com
par exemple.
E.g. : si j'ouvre Chrome sur lemonde, onglet "Network", puis filtre (petite icone d'entonnoir) sur XHR :
On voit plein de requêtes dont :
| Remote Address:93.184.220.20:80
Request URL:http://www.lemonde.fr/ws/1/ticker/alerte/
Request Method:GET
Status Code:304 Not Modified
|
Si je regarde les headers de cette requête je vois des Cookies, un Referer, Accept, les directives de cache etc. mais pas d'origin. Normal, c'est le même domaine que celui sur lequel j'ai chargé la page.
Ensuite, si je regarde une autre requête :
| Remote Address:209.177.145.68:80
Request URL:http://rpt.cedexis.com/n1/(blahblablah je coupe)
Request Method:GET
Status Code:200 OK
|
C'est une requête sur un autre domaine. Et dans les headers on voit bien :
| Origin:http://www.lemonde.fr
|
En JS les libs (ou même l'object XHR lui-même si je me rappelle bien) s'en occupent seuls. Evidemment avec un client tel que Postman ou un client lourd, il faut positionner ce header à la main.