DevProTalk

DevProTalk (http://www.devprotalk.com/index.php)
-   (X)HTML, JavaScript, DHTML, XML, CSS (http://www.devprotalk.com/forumdisplay.php?f=8)
-   -   Ajax & cross-subdomain problemi (http://www.devprotalk.com/showthread.php?t=2252)

bNasty 15. 01. 2007. 16:21

Ajax & cross-subdomain problemi
 
Upao sam u glupi problem, pa sad sumnjam i u ono shto (valjda) znam (ili ne znam).

Elem, ponudio se da pomognem prijatelju da formatira xml podatke koje mu shalje web server i da ih prikazhe na web strani. Stvar mora da bude client-side, jer nema pristup aplikaciji na serveru, i sve shto mozhe da dobije nazad je (ochajno formatiranu!) xml stranu.
OK, malo Ajax-a, formatiranja xml-a, i html-inject u letu je reshilo problem i to lepo radi u testu.

Medjutim, produkcijski server se nalazi na drugom subdomenu od strane koja ce otvarati konekciju ka serveru (xml dolazi sa profile.something.com a Ajax radi sa www.something.com). I naravno sada nijedan browser nece da otvori request prema strani u drugom subdomenu.

Jedino shto mi pada na pamet (a da nisu neki ruzhni iframe-bridge hakovi) je da stavi Ajax stranu na isti subdomen sa serverom, i odatle je pokupi u iframe-u.

Imate li josh neki predlog, za sluchaj da ne mozhe da pristupi fizichki subdomenu gde je server aplikacija?

TIA

jablan 15. 01. 2007. 16:45

Baci pogled na ovo:

http://developer.yahoo.com/javascript/howto-proxy.html

marinowski 15. 01. 2007. 16:50

... i ovde:

http://www.ajaxian.com/archives/how-...in-your-domain

bNasty 15. 01. 2007. 16:52

Hvala, vidjao sam neka Proxy reshenja ranije ali nisam obracao pazhnju do sada.

Od svih ponudjenih eventualno url-rewrite bi mogao da pomogne (jer nishta od PHP-a, json-a i slichnih opcija). Ili to, ili neka kopira stranu i script u isti subdomain nekako.

cvele 15. 01. 2007. 17:02

uh nemam link ovde, pitacu kolegu sutra... ima jedna zgodna stvarcica koja funkcionise preko flasha... radi cross domain

marinowski 15. 01. 2007. 18:34

Sve cemo cesce vidjati javascript + flash resenja, s tim da korisnik nece ni znati da koristi flash. Dovoljan razlog je bolji storage engine kod flasha.

ivanhoe 15. 01. 2007. 21:28

flashu ako dodas crossdomain.xml u root site-a, onda mozes da mu obezbedis da skida podatke odakle hoces..

napises u tom fajlu nesto tipa:
Kôd:

<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
    <allow-access-from domain="www.nesto.com" />
</cross-domain-policy>

i to bi trebalo da radi..

bNasty 16. 01. 2007. 18:59

Hvala na odgovorima.

Od svega ponudjenog je mod_rewrite (pomenut na yahoo-u) najbrzhe reshenje.

Mozhda ovo i nije forum za to, ali pitanje za mod_rewrite znalce (jer nemam trenutno nijedan remote server na raspolaganju da isprobam):

Redirekcija mora da bude "silent", tj. 30x response nije prihvatljiv jer javascript ochekuje xml. To sve lepo radi kada se redirektuje unutar istog subdomain-a, ali kakva je situacija sa npr.
Kôd:

RewriteRule ^/xml_data/([./]+)$  http://profile.blabla.com/$1 [QSA,T=application/xml,L]
(ovo napamet kucam, ali to je ideja). Oba dela se nalaze na istom domenu, ali razlichiti sub domeni. Da li u tom sluchaju mora da se koristi i [P] flag, tj. mod_proxy? Nisam siguran da server uopshte ima mod_proxy ukljuchen, shto bi bio problem...

TIA

ivanhoe 16. 01. 2007. 20:30

ne moze to tako, ako zelis spoljni redirekt (sa promenom domena) moras browseru da nalozis da to uradi sa 301 (ili vec kojim) responsom uz pomoc [R] flaga. Ako ne stavis [R] onda radis unutrasnji redirect apache-u i tako ne mozes da promenis domen.

Ono sto moze da se uradi (ali ja nemam nikakvog iskustva sa tim) je da koristis apache kao proxy server (sa mod_proxy), pa da mod_rewrite-u nalozis da uradi rewrite i posalje proxy zahtev. To se radi sa [P] flagom i pretpostavljam da bi sintaxa isla ovako nekako:
Kôd:

RewriteRule ^/xml_data/([./]+)$  http://profile.blabla.com/$1 [P,QSA,T=application/xml,L]
EDIT: pogledaj i ProxyPass komandu za mod_proxy, ona radi nesto slicno: http://httpd.apache.org/docs/2.0/mod...html#proxypass

bNasty 17. 01. 2007. 01:15

Tja.... preko preche, naokolo blizhe.... lepo je meni govorio tata, mani web i drzhi se C++a :)

Na kraju sam sredio nekako problem preko bridge-a u PHP-u :\

Da ne bude sve kako treba curl nije bio dostupan, ali sam nekako ishchupao reshenje - preko stream_context_create() funkcije.

Hvala josh jednom, poz


Vreme je GMT +2. Trenutno vreme je 05:35.

Powered by vBulletin® Verzija 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright © DevProTalk. All Rights Reserved.

Mišljenja, saveti, izjave, ponude ili druge informacije ili sadržaji nastali na Sajtu su vlasništvo onoga ko ih je kreirao, a ne DevProTalk.com, tako da ne morate da se oslanjate na njih.
Autori poruka su jedini odgovorni za ovakve sadržaje. DevProTalk.com ne garantuje tačnost, kompletnost ili upotrebnu vrednost informacija, stavova, saveta ili datih izjava. Ne postoje uslovi pod kojima bi mi bili odgovorni za štetu ili gubitak koji je posledica bilo čijeg oslanjanja na nepouzdane informacije, ili bilo kakve informacije nastale kroz komunikaciju između registrovanih članova.
Web sajt može sadržavati linkove na druge web sajtove na Internetu ili neke druge sadržaje. Ne kontrolišemo niti podržavamo te druge web sajtove, niti smo pregledali bilo kakve sadržaje na takvim sajtovima. Mi nećemo biti odgovorni za legalnost, tačnost ili prikladnost bilo kog sadržaja, oglasa, proizvoda, usluga ili informacije lociranim na ili distribuiranih kroz druge web sajtove, niti za bilo kakvu štetu nastalu kao posledica takvih informacija. DevProTalk.com drži i čuva druga prava vlasništva na web sajtu. Web sajt sadrže materijale zaštićene copyright-om, zaštitne znakove i druge informacije o pravu vlasništva ili softver. Članovi mogu poslatu informacije zaštićene pravima vlasništva njihovih nosilaca i ona ostaju zaštićena bez obzira da li su oni koji prenose te informacije to naveli ili ne. Osim informacija koje su u javnom vlasništvu ili za koje dobijete dozvolu, nemate pravo da kopirate, modifikujete ili na bilo koji način menjate, objavljujete, prenosite, distribuirate, izvršavate, prikazujete ili prodajte bilo koju informaciju zaštićenu pravima vlasništva. Slanjem informacija ili sadržaja na bilo koji deo DevProTalk.com, Vi automatski dozvoljavate i predstavljate garanciju da imate pravo da dozvolite DevProTalk.com ili članovima DevProTalk.com bespovratnu, kontinualnu, neograničenu, globalnu dozvolu da koriste, kopiraju, izvršavaju, prikazuju i distribuiraju takve informacije i sadržaje i da iz takvih sadžaja koriste bilo koji deo u bilo koje svrhe, kao i pravo i dozvolu da koriste gore navedene sadržaje. Svi zaštitni znakovi (trademarks), logotipi, oznake usluga, firme ili imena proizvoda koji se pominju na ovom web sajtu su vlasništvo kojim raspolažu njihovi vlasnici.