2015-05-12 12 views
8

sto facendo una chiamata AJAX dal dominio A al dominio B.AJAX chiamata seguente 302 reindirizzamento imposta origine a null

mio dominio controlli B se A è nella lista dei domini consentiti e imposta il Access-Control-allow-Origin al dominio A . Fin qui tutto bene.

Il dominio B risponde alla richiesta inviando un reindirizzamento 302 al dominio C utilizzando l'intestazione Location.

La chiamata AJAX segue il reindirizzamento al dominio C ma ha l'intestazione: Origin: null.

Mi aspettavo che l'intestazione origin venisse impostata sul dominio A, dopo aver seguito il reindirizzamento.

Qualcuno può spiegarmi perché l'origine è impostata su null anziché sul dominio A?

Esempio

  1. Richiesta da dominio A a B

  2. risposta dal dominio B:

    Access-Control-Allow-Origin: http://domain-A.com 
    Location: http://domain-C.com 
    
  3. chiamata AJAX segue il reindirizzamento al dominio C:

    GET HTTP/ 1.1 
    Host: domain-C.com 
    Origin: null 
    
+0

Ciao, ho una domanda ... come hai risolto il problema? È molto interessante per tutti ... Hai applicato modifiche lato dominio A o lato dominio B? Grazie! – Ragnarr

+0

Possibile duplicato di [Esistono dei browser che impostano l'intestazione di origine su "null" per i contesti sensibili alla privacy?] (Https://stackoverflow.com/questions/22397072/are-there-any-browsers-that-set- the-origin-header-to-null-for-privacy-sensitiv) – dur

risposta

-2

ho impostato Access-Control-Allow-Origin: null il dominio A e che ha funzionato.

+2

WOW. Ciò sconfigge lo scopo del CORS ed è incredibilmente insicuro. Per favore, non farlo. –

+0

Se lo fai incondizionatamente, sono entrambi piuttosto male. Se si desidera supportare origini Null, è necessario restituire in modo specifico null, se si desidera supportare qualsiasi origine, ma non origini nulle, quindi funzionerà la wildcard. È meglio controllare quale sia l'origine/referente per prima cosa. –

Problemi correlati