2015-05-12 22 views
8

robię wywołanie AJAX z domeny do domeny B.AJAX wywołanie następujące przekierowanie 302 wyznacza początek null

moja domena B sprawdza, czy A jest na liście dozwolonych domen i ustawia Access-Control-allow-Origin do domeny A . Jak na razie dobrze.

Domena B odpowiada na żądanie, wysyłając przekierowanie 302 do domeny C, używając nagłówka Location.

Wywołanie AJAX następuje po przekierowaniu do domeny C, ale ma nagłówek: Origin: null.

Oczekiwano, że nagłówek origin zostanie ustawiony na domenę A po wykonaniu przekierowania.

Czy ktoś może mi wyjaśnić, dlaczego pochodzenie jest ustawione na null zamiast na domenę A?

Przykład

  1. Wniosek domeny A do B

  2. reagowania z domeny B:

    Access-Control-Allow-Origin: http://domain-A.com 
    Location: http://domain-C.com 
    
  3. AJAX połączenia następuje przekierowanie do domeny C:

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

Witam, mam pytanie ... w jaki sposób rozwiązałeś problem? To bardzo intrygujące dla wszystkich ... Czy zastosowałeś zmiany w domenie bocznej A lub w domenie bocznej B? Dzięki! – Ragnarr

+0

Możliwy duplikat [Czy istnieją przeglądarki, które ustawiają nagłówek początkowy na "null" w kontekście prywatności?] (Https://stackoverflow.com/questions/22397072/are-there-any-browsers-that-set- the-origin-header-to-null-for-privacy-sensitiv) – dur

Odpowiedz

-2

ustawić kontroli dostępu-allow-origin: null na obszarze A i to działało.

+2

WOW. To po prostu pokonuje cel CORS i jest niesamowicie niepewne. Proszę tego nie robić. –

+0

Jeśli zrobisz to bezwarunkowo, oboje są całkiem źli. Jeśli chcesz obsługiwać zerowe początki, musisz zwrócić wartość null, jeśli chcesz obsługiwać dowolne pochodzenie, ale nie ma ona zerowego pochodzenia, wtedy symbol wieloznaczny zadziała. Najlepiej sprawdzić, co jest początkiem/poleceniem. –