Technologie i narzędzia: język PHP 5, Java, JavaScript, Python, system Zend Framework, Django, biblioteka jQuery, Smarty, platforma Eclipse, MySQL, SVN, CVS, UML, Firefox.
WebProgramming - wszystko o serwisach internetowych
O serwisach internetowych.
[javascript] Wywołanie AJAX.
Pracując nad jednym z serwisów napotkałem się na ciekawy problem. Funkcjonalność wydawała się banalna - dodawanie newslettera za pomocą AJAX do bazy. Po zakończeniu prac okazało się, iż czasami podczas dodawania pojawia się błąd w JavaScript “brak uprawnień” - wykonanie zapytania AJAXowego się nie powodzi.
Zaczęła się analiza. Co ciekawe u mnie było cały czas dobrze, dopiero u kolegi pojawił się błąd. Po dniu przerwy wszedłem na serwis, sprawdzam i… u mnie też już się pojawia ten błąd. Po stosunkowo krótkim czasie poszukiwań doszedłem do wniosku, iż błąd się pojawia, gdy adres serwisu nie zaczyna się od www (czyli jest wpisane http://adres.pl, a nie http://www.adres.pl). Dodam od razu, iż w zapytaniu AJAXowym była podana tylko nazwa pliku (czyli ścieżka względna, bez adresu strony).
Podsumowując okazało się, iż wina leży na samej górze strony.. w sekcji <head>. Było tam napisane na sztywno:
-
<base href="http://www.adres.pl/" />
Zapis ten powodował, iż poniższy adres stał się bazowym adresem dla zapytań AJAXowych - niby się wydaje logiczne, jednak na pierwszy rzut nie pomyślałbym o tym. Tym bardziej, że nie wiedziałem, iż taki zapis tam istnieje (nie robiłem webmasterki).
Wniosek: człowiek się uczy całe życie i… umiera niedouczonym (jak usłyszałem ostatnio od pewnej znajomej).
Napisz komentarz