ďťż

[JS][PHP] Header Location w żądaniach AJAX

       

Podstrony


telcocafe

Wysyłam AJAX-em żądanie POST do serwera. PHP wykonuje akcję, a następnie przekierowuje:header('Location: http://pełny/adres/strony');Dlaczego do przeglądarki dociera cała strona, a nie tylko właściwa część (tym zajmuje się już skrypt PHP)? Czyżby PHP nie przekazał nagłówka:X-Requested-With: XMLHttpRequestktóry wysyłam przy każdym żądaniu AJAX? Na jego podstawie wykrywam, czy to jest AJAX, czy zwykłe żądanie.



A co ci nie działa?

Cóż. Takie coś nie zadziała. Przekierowanie następuje po stronie przeglądarki. Gdy w skrypcie pojawia się nagłówek 'Location: adres', strona jest wysyłana do przeglądarki (zapewne z Twoim nagłówkiem X-*). Przeglądarka widzi przekierowanie, więc je wykonuje, ale to przeglądarka znów wysyła swoje nagłówki, więc Twój nagłówek, który został wysłany do przeglądarki (!), już się nie pojawi w jej zapytaniu.
Zresztą czy tak trudno sprawdzić jakie nagłówki są przesyłane na serwer? Pytasz czy PHP nie wysyła nagłówka. Owszem, wysyła (co możesz sprawdzić, np., w Firebugu; rzecz nietrudna), ale do przeglądarki.
Użytkownik andrzej_aa edytował ten post 08 styczeń 2010, 01:36
Chodzi o to, że przeglądarka po przekierowaniu nie wysyła drugi raz nagłówka X-Requested-With: XMLHttpRequest. Jeszcze to sprawdzę w innych przeglądarkach. Może to bug, a może feature :)



A po jakiego grzyba wywołujesz ajaxem akcję, która ma zakończyć się przekierowaniem?

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • nvm.keep.pl

  • Sitedesign by AltusUmbrae.