Autor Zpráva
Tonny
Profil *
Ahoj,
v souboru .htaccess mám tento obsah:
RewriteEngine On 
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?url=$1 [L,QSA]

pomocí toho vytvářím "pěkné url".

problém nastvává ve chvíly, kdy chci použít například tuto ajaxovou funkci:
function contentAjax(hodnota){      
            var xmlhttp;
            if(window.XMLHttpRequest){xmlhttp=new XMLHttpRequest();}                                                   
            else{xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");}                                                   
            xmlhttp.onreadystatechange=function(){
                if(xmlhttp.readyState==4&&xmlhttp.status==200){document.getElementById("obsah").innerHTML=xmlhttp.responseText;}
            }
            xmlhttp.open("GET","cesta k souboru(zkoušel jsem relativní i absolutní)",true);   
            xmlhttp.send();  
}

stane se to, že, do divu (obsah) se načte celá stránka, nakteré zrovna jsem a ne výsledek skriptu na který "odkazuji"

Posím, nevíte někdo co s tím?
Davex
Profil
Za předpokladu, že je cesta ke skriptu správně a vede k existujícímu souboru, by toto přepisovací pravidlo nemělo mít vliv na obsah načítaný AJAXem. Příčina bude pravděpodobně v něčem jiném.
Tonny
Profil *
Cesta je na 100% správně, když adresu zkopíruji do prohlížeče, zobrazí se mi výsledek.

Když jsem tu stejnou ajaxovou funkci používal na webu, kde není url měněna pomocí přepisovacího pravidla, tak fungovala správně :(
Joker
Profil
Tonny:
Stejně jako Davex bych řekl, že příčina bude jinde, než v .htaccess.

Co by šlo ověřit:
• Jaký je výsledek toho XMLHTTPRequestu? (OK, 404ka, nebo něco jiného?)
• Kam se na serveru jde? (Šlo by zjistit ze serverového logu, otevřít si prohlížeč a log, poslat AJAX, obnovit log a podívat se.)
• Primitivní způsob ověření je změnit adresy na „GET-ové“, přejmenovat .htaccess a zkusit, jestli to začne fungovat. Když ne, bude nejspíš chyba jinde.

Ještě mě napadá, že ten stav, kdy při otevření v prohlížeči se obsah objeví, ale přes AJAX nefunguje, by způsobilo i přesměrování na jinou doménu (při zadání adresy v prohlížeči se bude následovat, přes AJAX ne). Ale .htaccess z [#1] sám o sobě nevyvolá přesměrování na jinou doménu.
Ale lze to prověřit otevřením té adresy třeba přes Otevřít soubor z Internetu v PSPadu.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: