Autor Zpráva
Miri
Profil *
Ahoj zase já a se stejným problémem jako zde. Stále to nemůžu vyřešit.. stále něco testuji hledám a nci a nic a nic.. :-( Ještě jednou vás poprosím o pomoc a s novým příkladem.

Na stránkách santa-open.cz je web bez subdomény a 2 další subdomény (2010,2009) web má stejné uložiště pro všechny subodmény a hlavní doménu. Vše funguje jen do té doby než použiji ajax na některé ze subdomén. Mužete zkusit když v levém menu kliknete na Týmy (2011) vše funguje jak má. Stejný kod Týmy (2010,2009) Bohužel nefunguje. při prvním ajaxovém vstupu mi skoči chyba v consoly.
Když do indexu přidám document.domain tak mi DW napíše chybu a nevím proč viz obrázek zde

v JS mám takovouhle funkci:
var system = 'http://santa-open.cz';
 
function nactiZsystem(name){		
   $.ajax({
   type: "GET",
   url: system+"/zsystem/admin.php",
   data: "name="+name, 
   success: function(data){  
   		$("#zsystem").html(data);
   }  
 });

}


adresa je absolutní tak aby se soubor bral kdyžtak i z domény bez subdomény.

Prosím vás za každou radu. Děkuji Míra
Davex
Profil
Musíš se nějak vyhnout „same origin policy“.

Zhruba máš dvě možnosti:
1) na subdoménách načítat AJAX skripty z domény do skrytého <iframe> a spouštět skripty z něj
2) použít JSONP
_es
Profil
Davex:
na subdoménách načítat AJAX skripty z domény do skrytého <iframe> a spouštět skripty z něj
Čo mu veľmi nepomôže, lebo sa síce skript v iframe spustí, no nemá prístup k okolitej stránke a rovnako aj okolitá stránka nemá prístup k iframe. No možno vtedy by nastavenie vlastnosti document.domain v Miriho prípade fungovalo.

Miri:
Máš tam aj chybu:
Chyba: Šablóna so štýlmi http://2010.santa-open.cz/litebox/css/lightbox.css nebola načítaná, pretože jej typ MIME je "text/html" namiesto "text/css". Zdrojový súbor: http://2010.santa-open.cz/[/i]
Davex
Profil
_es:
No možno vtedy by nastavenie vlastnosti document.domain v Miriho prípade fungovalo.
Ano, nastavení document.domain je nedílná součást této techniky. Jen jsem to nechtěl opakovat.


Vlastně je ještě jedna možnost:
3) napsat si v PHP proxy skript, který bude ze subdomén přeposílat AJAX požadavky na hlavní doménu
Miri
Profil *
Davex
použít JSONP 

Jenže JSONP vrací přece jen určité data ze scriptu je to tak ? to by se mi moc nehodilo protože já potřebuju vracet celou novou stránku.
Vlastně je ještě jedna možnost:
3) napsat si v PHP proxy skript, který bude ze subdomén přeposílat AJAX požadavky na hlavní doménu

To se mi zdá zatím jako nejlepší řešení, ale vůbec netuším jak na to. Myslíš že by jsi mi mohl nějak nastínit jak na to ?
Davex
Profil
1) AJAXem se bude volat PHP skript na stejné subdoméně
2) PHP skript
  a) přijme GET/POST data
  b) přepošle všechna GET/POST data skriptu na hlavní doméně
  c) přijatá data a některé HTTP hlavičky od skriptu na hlavní doméně odešle prohlížeči
3) JavaScript v prohlížeči přijme data a zobrazí výsledek
_es
Profil
Miri:
Jenže JSONP vrací přece jen určité data ze scriptu je to tak ?
JSONP je to, že načítaš JS z inej alebo aj tej istej domény. Čo bude obsahovať, a ako ho vygeneruješ, je už na tebe. Teda ak môžeš nastaviť, čo má server vrátiť, tak to môžeš využiť úplne rovnako ako AJAX, len nie je obmedzenie na tú istú doménu.
_es
Profil
Davex:
Ano, nastavení document.domain je nedílná součást této techniky. Jen jsem to nechtěl opakovat.
Áno, pri použití JS v rôznych oknách čí rámoch má nastavenie document.domain zmysel - musí to povoliť aj jedna aj druhá subdoména. Nedošlo mi, že ak by malo fungovať toto, bol by ten princíp porušený - hociktorá subdoména by mala prístup k hocijakým dátam inej subddomény.
Miri
Profil *
Davex a _es:
Tak snad to dám něják dokupy a opravdu díky za pomoc :-)

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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

0