Autor Zpráva
Kalby
Profil
Dobrej do ajaxu jsem doposud nedelal dneska jsem zkousel napsat aplikaci pro strankovani seznamu pomoci ajaxu. Delal jsem to na localhostu, ale stale mi hlasi tuto chybu:

Odepření přístupu při volání metody XMLHttpRequest.open a zobrazí se alert Restricted acces

Hledal jsem na netu a našel jsem že se tato hláška objevuje při volání scriptu na jiné doméně, to ovšem není můj případ. Ukážu ještě skript, měl by to být modul do Joomly, proto ta cesta.. Do hlavičky šablony vkládám tento javascript:

<script type="text/javascript">

function showPage(from) {
var http_request = false;
var request = 'start='+from;

if (window.XMLHttpRequest) {
http_request = new XMLHttpRequest();
} else if (window.ActiveXObject) {
try {
http_request = new ActiveXObject("Msxml2.XMLHTTP");
} catch (eror) {
http_request = new ActiveXObject("Microsoft.XMLHTTP");
}
}

http_request.onreadystatechange = function() { zpracuj(http_request); };
http_request.open('POST', 'http://localhost/modules/mod_contactlist/mod_contactlist.php', true);
http_request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
http_request.send(request);
}

function zpracuj(http_request) {
if (http_request.readyState == 4) {
if (http_request.status == 200) {
alert(http_request.responseText);
} else {
alert('Chyba');
}
}
}
</script>


poté funkci volám přes odkaz takto:

<a href="javascript:void(0)" onClick="showPage(20)">1</a>

soubor mod_contactlist.php samozřejmě vytvořen je, vybírá data z databáze a zobrazuje požadované seznamy. Díky za každou připomínku, znovu upozorňuji, že jsem začátečník, proto si nechte nemístné připomínky. Děkuji za odpovědi.

EDIT: zkousel jsem i relativní cestu /modules/mod_contactlist/mod_contactlist.php
Pajah
Profil
} catch (eror) { 
http_request = new ActiveXObject("Microsoft.XMLHTTP"); 
}


Nemá tam náhodou být catch(e) ?
Chamurappi
Profil
Reaguji na Pajah:
Do závorky se dává jméno proměnné, která se naplní informacemi o chybě. Je samozřejmě úplně jedno, jestli se jmenuje „e“ nebo „eror“, tím spíš, že se vůbec nevyužívá.


Reaguji na Kalbyho:
Prohlížeč ti z bezpečnostních důvodů nedovoluje přistupovat na jinou doménu, než na které leží aktuálně prohlížená stránka.

zkousel jsem i relativní cestu
Ta by měla fungovat.
Kalby
Profil
No prave ze vysledek je naprosto stejný. Zkousel jsem i soubor s php skriptem vlozit primo do rootu a cestu nechat jen nazev skriptu ale vysledek je naprosto stejny. Dokonce jsem skript zkousel spustit i primo na webu, ale vysledek porad stejny, takze chyba bude asi ve skriptu, jenom netusim kde
Chamurappi
Profil
Reaguji na Kalbyho:
Živou ukázku bys neměl?
Kalby
Profil
Tak jsem ted udelal na locale uplne trivialni php skript kterej mi jen vypsal promenou co jsem mu poslal a to funguje a uz jsem i prisel na to, pro mi nefungoval tamten skript. Includoval jsem do nej totiz pomocnou tridu pro vypocet. A to jak tak koukam nemuzu... Nebo jde to nejak obejit?
Chamurappi
Profil
Reaguji na Kalbyho:
Includoval jsem do nej totiz pomocnou tridu pro vypocet.
JavaScriptu je jedno, jak je sestavená odpověď na straně serveru. Bezpečnostní výjimku by zahlásil jedině v případě, že bys ho přesměrovával na jinou doménu. Pozor na to, že domény „www.něco.cz“ a „něco.cz“ jsou různé.

A to jak tak koukam nemuzu... Nebo jde to nejak obejit?
Co obejít? Includování pomocné třídy pro výpočet, kterou jsem nikdy neviděl, do tvého skriptu, který jsem nikdy neviděl? Nevím.
Kalby
Profil
Děkuji za reakci, trošku sem zazmatkoval, tím includem to nakonec taky nebylo. Problem byl na straně Joomly uz je to vyřeseno.

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

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