Portál AbcLinuxu, 12. prosinec 2017 15:08

Dotaz: AJAX, localhost a 403: Forbidden

7.8. 20:53 mica
AJAX, localhost a 403: Forbidden
Přečteno: 282×
Odpovědět | Admin
Potřeboval jsem napsat v JS funkci, která by do HTML stránky načetla obsah z XML souboru pomocí AJAXu. Zkoušel jsem to v domovském adresáři se dvěma soubory, ve Firefoxu a pod protokolem file. Aniž bych to tušil, měl jsem štěstí, že jsem použil zrovna Firefox, neboť v něm byla moje funkce funkční. Pak jsem oba soubory přesunul do /var/www/html do různých podadresářů a vyzkoušel jsem to pod localhostem, ale najednou to nefungovalo (server oznámil chybu 403: Forbidden - ovšem pokud byly žádající a požadovaný soubor ve stejném adresáři, localhost neprotestoval a vykonal). Tak jsem pátral a zjistil, že prohlížeče (zrovna Firefox ovšem ne) považují ajaxovou žádost pod protokolem file za cross origin request, i když jsou všechny soubory na stejné doméně a ve stejném adresáři (což nechápu), a chyba 403 pod protokolem http, jak jsem pochopil, znamená v tomto případě totéž (což chápu ještě méně). Nakonec jsem zkusil své dva soubory nahrát na server v internetu (do různých podadresářů) a tam už mi má funkce fungovala. Z toho jsem usoudil, že nemám vhodně nastavený svůj místní server (Apache). Nepodařilo se mně však najít, kde, co a jak bych měl nastavit. Budu rád, když mi někdo poradí, za což předem děkuji.
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

7.8. 23:00 NN
Rozbalit Rozbalit vše Re: AJAX, localhost a 403: Forbidden
Odpovědět | | Sbalit | Link | Blokovat | Admin
Projdi konfiguraci v /etc/apache2/..
9.8. 15:30 mica
Rozbalit Rozbalit vše Re: AJAX, localhost a 403: Forbidden
Díky, to mě nasměrovalo.
9.8. 22:04 mica
Rozbalit Rozbalit vše Re: AJAX, localhost a 403: Forbidden
Odpovědět | | Sbalit | Link | Blokovat | Admin
Když mám skript v souboru umístěném v adresáři adresar a chci ajaxem získat data ze souboru ../soubor.xml, proč je to vůbec považováno za cross origin request? To už i nadřazený adresář se považuje za jinou doménu?
10.8. 00:26 OldFrog {Ondra Nemecek} | skóre: 28 | blog: Žabákův notes | Praha
Rozbalit Rozbalit vše Re: AJAX, localhost a 403: Forbidden
Protokol file:// má omezení kvůli bezpečnosti, testujte to vždy přes normální http server. Na ty reguesty se zkuste podívat v nástrojích vývojáře ve Firefoxu (F12) - v kartě síť a dále tamtéž v kartě konzole. Při normálním http přístupu záleží na nastavení CORS, CSP případně JSONP, to implementují snad všechny současné prohlížeče, rovněž kvůli bezpečnosti, a chyby jsou vidět v konzoli a kartě síť včetně popisu. Chování prohlížeče se řídí http hlavičkami, které posílá server, nebo alternativně meta tagy v html (to jsem nikdy nepoužil). Nevím, jestli se to týká přesně vašeho problému, ale jako nasměrování to doufám stačí.
-- OldFrog
10.8. 15:06 mica
Rozbalit Rozbalit vše Re: AJAX, localhost a 403: Forbidden
Jde mně z toho hlava kolem, poněvadž v některých situacích to funguja a v jiných ne. V případech, kdy ne, mám v konzoli jen POST XHR http://localhost/cesta-k-souboru/soubor.xml [HTTP/1.1 403 Forbidden 0ms], z čehož nic nedokážu vyčíst.
12.8. 14:28 Milan Uhrák | skóre: 26 | blog: milan_at_ABC
Rozbalit Rozbalit vše Re: AJAX, localhost a 403: Forbidden
ok, Forbidden .. koukni do logu apače, Nemáš xml mimo "root" apačího serveru ?
13.8. 18:53 mica
Rozbalit Rozbalit vše Re: AJAX, localhost a 403: Forbidden
V logu je toto (zkráceno): [access_compat:error] (...) client denied by server configuration: /var/www/html/data/data1.xml, referer: http://localhost/infopage

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.