Autor Zpráva
Miri
Profil *
Ahoj, potřeboval bych poradit co s tím. Děkji.
Mám dvě domény. (jedna.cz a dva.cz)
z domény jedna načítam externí JS soubor z domény dva.cz ve kterém je tento script:

function spustitOkno(name, id){
                
  $.ajax({
   type: "GET",
   url: "http://dva.cz/okno.php",
   data: "name="+name+"&id="+id, 
   success: function(data){  
           $("#nactiOkno").html(data);    
   }  
 });
}

Samozřejmě když script volám na doméně dva.cz tak vše funguje, jakmile se chci připojit z cizí domény, script přestane fungovat. Nevíte jak se řeší externí načítání okna a cizího obsahu z externí domény? a jak to na doméně dva.cz detekovat, kdybych si chtěl povolit jen určité domény, ze kterých se může přistupovat?

Předem děkuji za odpověd
Míra
QAqq
Profil *
Kdyby si chtel povolit jenom jednu domenu tak zjisti jeji IP a nasledne muzes v okno.php kontrolovat $_SERVER["REMOTE_ADDR"] a pokud se nebude schodovat tak spojeni ukoncis.
Fisir
Profil
Reaguji na Miriho [#1]:
S AJAXem se na cizí doménu nepřipojíš. Budeš muset soubor okno.php přemístit k sobě na stejnou doménu, ze které se volá AJAX.
Miri
Profil *
No, tak jak to třeba děla facebook, kterému stačí vložit část JS kodu na svoje stránky, kde se pak bezproblému zobrazuje jejich okno?
Jan Kupka
Profil
Miri:
Vzhledem k same origin policy nemůžeš klasickým AJAXem přistupovat ke zdrojům na jiné doméně. Řešením je:

1) Použít JSONP, případně CORS.
2) Umístit na doménu jedna proxy script (třeba v PHP), který při dotázání stáhne data z domény dva a bude sloužit jako "přístupový bod" pro JS na doméně jedna.
Frozen
Profil
Zkus do scriptu okno.php vložit toto na začátek:
ob_start();
 header('Access-Control-Allow-Origin: *');  

a toto na konec
ob_end_flush();
_es
Profil
Frozen:
Zkus do scriptu okno.php vložit toto na začátek:
Nedostatočná podpora v prehliadačoch: developer.mozilla.org/en-US/docs/HTTP/Access_control_CORS#Browser_compatibility

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: