Newsgroup: it.comp.lang.javascript
Titolo: Visualizzare contenuto da un altro dominio (e "Autorizzazione Negata")

Problema:
- sul sito A creo dinamicamente la pagina paginaA.asp (di lunghezza
variabile)
- sul sito B ho la pagina paginaB.html (o anche .asp, non e' molto
importante ora)
- vorrei mostrare l'innerHtml di paginaA.asp in un <div> o un <td> o un
<iframe> di paginaB.html
- riesco ovviamente a mostrarla in un iframe, ma vorrei togliere le barre di
scrolling e quindi vorrei che l'attributo height dell'iframe si
ridimensionasse automaticamente (una volta caricato l'iframe)
- mi interessa anche una soluzione che funzioni solo con Internet Explorer
- ho trovato e provato diversi javascript che riescono benissimo a
ridimensionare l'height dell'iframe, ma funzionano tutti soltanto se
paginaA.asp e paginaB.asp risiedono nello stesso dominio, altrimenti mi
becco il famigerato (anche se, ahime' necessario) Permission Denied di IE
- parimenti, ho trovato diversi javascript che utilizzano un iframe
invisibile come buffer in cui caricano paginaA.asp, poi ne vanno a prendere
l'innerHtml e lo attribuiscono come innerHtml ad un elemento <div>. Anche
questi, pero', se paginaA e paginaB sono su domini distinti, quando vanno a
provare a leggere qualunque attributo del document dell'iframe, si beccano
la loro Autorizzazione Negata
Tutte le soluzioni che trovo in giro funzionano soltanto se paginaA e
paginaB sono nello stesso dominio, altrimenti si incoccia nel problema di
sicurezza. Pero', onestamente, non riesco a credere che non esista un modo
con cui le pagine possano farsi un trust reciproco, oppure un qualche
attributo che permetta all'Iframe di ridimensionarsi automaticamente (non
vedo come leggere l'altezza del documento figlio possa essere un
comportamento pericoloso...). Oppure anche un attributo src (source) non
standard, ma supportato da IE sarebbe apprezzatissimo (anche se, dalle mie
prove, nope)
Insomma, lo scopo e' mostrare l'innerHtml di paginaA.asp in un <div> o un
<td> o un <iframe> di paginaB.html, con paginaA e paginaB su due domini
distinti.
Se si riesce ad evitare l'uso di Applet, molto meglio, se proprio non se ne
puo' fare a meno, ben venga un link :-)
Ogni suggerimento sara' piu' che apprezzatissimo!!
--
VBSdb - VBScript for Database
http://www.vbsdb.com
VBSdb is an open source VBScript object for fast ASP development

Non vi è soluzione (se trovi la soluzione per indicare che 2 domini possono
"colloquiare" fra loro, anche lato server, fammi sapere)

 "colloquiare" fra loro, anche lato server, fammi sapere)
Non mi sono mai posto il problema di ridimensionamento automatico, ma
qualcosa si può fare.
Lavorando con frame o iframe o ActiveX puoi effettivamente crearti un
browser dentro IE, ma non credo sia questo che si vuole.
Tempo fa mi ero divertito a fare uno "spider" in ASP, così da prendere
direttamente e senza colpo ferire tutto il codice html di una qualunque
pagina su Internet. Avendo questo in mano bisogna solo armarsi di pazienza
per fare un parser decente e isolare e/o modificare le parti di codice che
ci interessano.
Ad esempio in questo caso leggendo qua e là sulla pagina in questione
possiamo prendere informazioni per dimensionare il nostro layer lato client.

 "colloquiare" fra loro, anche lato server, fammi sapere)
In PHP lo puoi fare, ci sono funzioni native che ti aprono socket e 
gestiscono diversi protocolli.
Puoi quindi fare cose che, normalmente, non sarebbe possibile ottenere.
In ASP qualcosa di vagamente analogo c'e', ma nn ha la stessa 
flessibilita' e potenza.
-- 
C'ya,
ZER0
  :. job profile - coder.gfxer.webDesigner
"Quanti angeli danzano sulla punta di uno spillo?"

 flessibilita' e potenza.
Cominci a rompermi le scatole con questo PHP, mi toccherà inserirlo di
fianco a .NET nello sterminato elenco delle cose da fare.
Comunque devi ancora dimostrarmi che 
ASP.NET
 non abbia colmato il gap che
c'era tra PHP e ASP.
Discuteremo quando arrivi dalle mie parti...
Bye

 Ogni suggerimento sara' piu' che apprezzatissimo!!
Fai tutto lato server.
-- 
Ciao, Riccardo
------------------------------------------------------------------------
http://www.jsdir.com
 ---- Bring Your Site To Life!!!!
------------------------------------------------------------------------
http://www.dev2dev.it
 - La rete ha connesso nuove particelle - D2D006
------------------------------------------------------------------------
    itALY = it

 c'era tra PHP e ASP.
Ehm, veramente sei tu che dovresti dimostrarmi il contrario.. ^^"
.. E poi mi pare di avertene accennato il perche', per telefono.. :)
Ricorda le .NET functions, e che PHP e' completamente open source :)


, 
zer0....@libero.it
 says...
Ah dimenticavo :)
.. Se nn fosse per 
ASP.NET
, avrei gia' abbandonato completamente la 
tecnologia ASP della Microsoft.. ;P
Ci sono un sacco di cose che invece mi interessano moltissimo.. 
Sicuramente, 
ASP.NET
 e' anni luce avanti ad ASP.. e per fortuna, dire. 
:)
Se ti vuoi dedicare ad 
ASP.NET
, fallo subito.. avrai vantaggi nn 
indifferenti e ti divertirai.. :)
.. Ma PHP e' Open Source, e mi piace troppo.. Se hai il server linux in 
hosting, te lo puoi ricompilare come piu' ti aggrada ;)


 possiamo prendere informazioni per dimensionare il nostro layer lato
client.
Una volta che ho in mano l'html della pagina lato server, sono a posto, non
uso nemmeno piu' il layer, metto il codice direttamente in un <td>. Un
annetto fa avevo rinunciato all'utilizzo delle httpGet perche' non c'erano
su tutti i servizi di hosting... temo di dover ridare un'occhiata su icwa e
sulle varie risorse ASP.
Ciao!


 Fai tutto lato server.
Ciao Riccardo,
il problema e' che io creo un elenco di informazioni che in futuro potrebbe
essere interessante per parecchi siti e sarebbe carino avere un modo per
permettere a questi siti di mostrare le informazioni all'interno delle
proprie pagine via HTML/Javascript, perche' ciascuno di questi siti potra'
essere su qualunque piattaforma server.
Insomma, visto che, per il caso generale di comunicazioni tra frame il
problema di sicurezza c'e', ma per visualizzare semplicemente il contenuto,
non c'e' nessun problema di sicurezza, costava tanto dare la possibilita'
agli IFRAME di ridimensionarsi automaticamente o aggiungere un attributo
src, ad esempio ai <div>?
Ciao!


 sulle varie risorse ASP.
Appunto, cerca su 
aspitalia.com
 lo script per inserire le news di Punto 
Informatico, se non lo trovi scrivimi in privato che te lo mando.
-- 
Ciao, Riccardo
------------------------------------------------------------------------
http://www.jsdir.com
 ---- Bring Your Site To Life!!!!
------------------------------------------------------------------------
http://www.dev2dev.it
 - La rete ha connesso nuove particelle - D2D006
------------------------------------------------------------------------
 ----> itALY = it <----

 "colloquiare" fra loro, anche lato server, fammi sapere)
Le tecnologie ci sono.
Io non ne so praticamente nulla, cmq XML in testa (e SOAP) mi sembra che 
servano a questo.
XML poi in IE5 e successivi si può usare anche lato client, Fabiano ha 
pubblicato uno script apposta nei tutorials.
Altrimenti lato server, questo:
On Error Resume Next
Dim objXMLHTTP, StrURL, arrNews, strSep 
strSep = " > " 
StrURL = "
http://punto-informatico.it/fader/uoxmla.txt
" ' SOLO ULTIM'ORA 
Set objXMLHTTP = Server.CreateObject("Microsoft.XMLHTTP") 
objXMLHTTP.Open "GET", StrURL, false 
objXMLHTTP.Send 
arrNews = CStr(objXMLHTTP.ResponseText) 
arrNews = Split(arrNews, VbCrLf) 
Set xml = Nothing 
ti restituisce in arrNews le ultimora di Punto Informatico
                         [ Fonte 
http://www.aspitalia.com
 ]


  se non lo trovi scrivimi in privato che te lo mando.
L'ho postato nella risposta a Cristiano.
Ah: non fatemi domande su quello script, io l'ho copYncollato :-))


 Comunque, se mi vuoi mandare lo script... ;-)
All'epoca ho usato il Microsoft Internet Transfer Control.
Ricordo che di default non č installato in NT 4.0, ma lo č su win2000.
Esempio veloce :
var strURL="
http://www.tuourl.com
";
var objInet = Server.CreateObject("InetCtls.Inet");
objInet.protocol = 4; // protocollo http
objInet.accesstype = 1; // connessione diretta
objInet.requesttimeout = 60;
objInet.URL = strURL;
var strHTML = objInet.OpenURL();
objInet = null;
Ciao

Uhm
win2000 adv. server sp2
<%var strURL="
http://www.executive.it
";
var objInet = Server.CreateObject("InetCtls.Inet")%>
Errore:
Server object error 'ASP 0177 : 800401f3'
Server.CreateObject Failed
/tmp/leggere_altro_dominio.asp, line 7
Invalid ProgID. For additional information specific to this message please
visit the Microsoft Online Support site located at:
http://www.microsoft.com/contentredirect.asp
.
Non capisco bene l'errore che visualizza ma non credo venga installato di
default; su msdn trovo esempi per vb, da quel poco che dicono credo venga
distribuito con vb

 distribuito con vb
Mi sa che hai ragione. Cappella mia. Infatti prima di farlo in ASP feci una
"bozza" in VB.