Autor Zpráva
AntonP
Profil
Dobrý deň,
Robím úpravu systému zákazníkovi. Chcem tam napísať verziu systému, ale aby si zákazník nemohol len tak pre nič za nič meniť verziu, urobil som to cez ajax xmlhttp request na lib na mojich stránkach, ku ktorým prístup nemá. Lenže systém bude pochopiteľne na zákaznikovom serveri. Ak ale v open napíšem adresu iného serveru (nie napr. ../systemVersion.php ale lib.mojastranka.eu/.lib/systemVersion.php) tak sa mi vráti null (žiadna odpoveď). Dá sa to spraviť nejak tak?
JS kód, ktorý funguje na mojej testovacej stránke:
function showVer() {
        var xmlhttp = new XMLHttpRequest();
        xmlhttp.onreadystatechange = function() {
            if (this.readyState == 4 && this.status == 200) {
                document.getElementById("ver").innerHTML = this.responseText;
            }
        };
        xmlhttp.open("GET", "systemVersion.php", true);
        xmlhttp.send();

[Súbor systemVersion.php v tej istej zložke:
<?php
$systemVersion="1.2";
echo $systemVersion;
?>

Ako by to malo fungovať:
function showVer() {
        var xmlhttp = new XMLHttpRequest();
        xmlhttp.onreadystatechange = function() {
            if (this.readyState == 4 && this.status == 200) {
                document.getElementById("ver").innerHTML = this.responseText;
            }
        };
        xmlhttp.open("GET", "https://lib.mojastranka.eu/.lib/systemVersion.php", true);
        xmlhttp.send();

Komentáre typu "načo ti to bude, je to zbytočné" atď. sú k viete čomu :)
Ďakujem za každú radu a pomoc.
Radek9
Profil
AntonP:
Ajax defaultně (kvůli bezpečnosti) funguje jen na požadavky ze stejné domény. Pokud chceš posílat požadavky na jinou doménu, musí tam být správně nastaveny CORS (Cross-origin resource sharing) hlavičku. Ukázka tady: enable-cors.org/server_php.html
AntonP
Profil
Super, funguje, ďakujem moc

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: