• User Attivo

    Ciao,

    l'applicazione e' classic ASP o ASP.NET? Se e' ASP.NET, prova ad aggiungere al tuo web.config questo:

    
    
    
    <?xml version="1.0" encoding="utf-8"?>
    <configuration>
     <system.webServer>
       <httpProtocol>
         <customHeaders>
           <add name="Access-Control-Allow-Origin" value="*" />
         </customHeaders>
       </httpProtocol>
     </system.webServer>
    </configuration>
    
    
    
    

  • User Attivo

    grazie alle tue indicazioni avevo visto quanto mi suggerisci, ma ho il sito in asp classico...

    a parte questo, ho provato ad inserire il codice in webconfig, ho creato una pagina di test salvata in aspx (un semplice Hello World scopiazzato in rete che in effetti sul sito vecchio viene visualizzato)...dovrebbe andare ugualmente, o no? non so se centra il fatto che ho il dominio registrato su Aruba, c'è qualche altra prova che posso fare?


  • User Attivo

    L'importante e' che la pagina ASP col contenuto che vuoi fare apparire su Wordpress sia inviata dal server con l'header "Access-Control-Allow-Origin". Prova ad aggiungere questo in cima al file .asp questo:

    Response.AddHeader "Access-Control-Allow-Origin","*"
    
    

  • User Attivo

    porta pazienza ma di asp net non so nulla, vedo in giro soluzioni ma non capisco come implementarle, sul vecchio sito ho messo la pagina test.aspx

    
    
    <%@ Page Language="VB" %>
    
    <script runat="server">
        Private Sub Page_Load(sender As Object, e As EventArgs)
            Messaggio.Text = "Hello World!"
        End Sub
    </script>
    <html>
        <head>
            <title>La mia prima pagina ASP.NET</title>
        </head>
    <body>
    
    <form id="Modulo" runat="server">
        
        <asp:Label id="Messaggio" runat="server"></asp:Label>
    </form>
    
    </body>
    </html>
    
    
    
    

    ed ho modificato il web.config come mi hai detto, sul nuovo sito la richiamo così

    
    
    <div id="risultato"></div>
    <p>&nbsp;</p>
    
      <script>
    jquery('risultato').load('hxxp://xxx.vecchiosito.com/test.aspx', function() {
        ;
    });
    ;
    </script>
    
    
    

    l'istruzione che dici con che sintassi devo metterla?


  • User Attivo

    Se l'applicazione e' ASP.NET (mi sembrava di aver capito che si trattasse di classic ASP e non ASP.NET...) e hai fatto le modifiche al web.config dovrebbe funzionare. Hai provato? Ricevi lo stesso errore? Hai provato a riavviare la app?


  • User Attivo

    ho fatto una cosa molto più "meschina" ho scopiazzato un po' di codice ASP NET trattandolo (nella mia ignoranza) come fosse un linguaggio normale, ribadisco di ASP NET non so nulla...volevo solo capire se poteva funzionare

    confermo che il sito è in asp classico, quindi il tentativo in ASP NET non mi avrebbe risolto il problema


  • User Attivo

    Allora prova ad aggiungere la riga che ti ho suggerito prima nel file .asp che vuoi caricare nell'altro sito.

    
    Response.AddHeader "Access-Control-Allow-Origin","*"
    
    

  • User Attivo

    Niente da fare, temo dovrò arrendermi, questa è la pagina che voglio richiamare

    
    <%@LANGUAGE="JAVASCRIPT"%>
    <%
    Response.AddHeader("Access-Control-Allow-Origin", "*")
    %>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "hxxp://xxx.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="hxxp://xxx.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Documento senza titolo</title>
    </head>
    <body>
    prova inclusione pagina
    </body>
    </html>
    
    

    ma non produce effetto, la pagina sul sito vecchio si vede, sul sito wordpress se provo a richiamare una pagina dello stesso dominio si vede...ma se richiamo la pagina dal vecchio sito non la visualizza...ovvero l'istruzione Access-Control-Allow-Origin non produce effetto ho provato anche a sostituire * con il nome del dominio richiedente ma senza successo...da quel che ho letto in giro è la strada giusta ma non capisco dove sta il problema...

    Saluti


  • User Attivo

    Mai arrendersi 😛

    Nei dev tools per es. di Chrome verifica se quel response header compare oppure no.


  • User Attivo

    per natura sono tenace, altrimenti non starei qui a picchiarmi...

    Chrome dice

    
    autoptimize_e312709e69add248829d1e9b94b15389.js:3 JQMIGRATE: Migrate is installed, version 1.4.1
    (index):40 Uncaught TypeError: $(...).bxSlider is not a function
        at HTMLDocument.<anonymous> ((index):40)
        at i (jquery.js?ver=1.12.4:2)
        at Object.fireWith [as resolveWith] (jquery.js?ver=1.12.4:2)
        at Function.ready (jquery.js?ver=1.12.4:2)
        at HTMLDocument.K (jquery.js?ver=1.12.4:2)
    (anonymous) @ (index):40
    i @ jquery.js?ver=1.12.4:2
    fireWith @ jquery.js?ver=1.12.4:2
    ready @ jquery.js?ver=1.12.4:2
    K @ jquery.js?ver=1.12.4:2
    (index):1 XMLhxxpRequest cannot load hxxps://xxx.guidasi.com/test.asp. The 'Access-Control-Allow-Origin' header contains multiple values '*, *', but only one is allowed. Origin 'hxxps://xxx.guidasiblog.com' is therefore not allowed access.
    jquery-1.10.2.js:8706 XHR failed loading: GET "hxxps://xxx.guidasi.com/test.asp".
    send @ jquery-1.10.2.js:8706
    ajax @ jquery-1.10.2.js:8136
    jQuery.fn.load @ jquery-1.10.2.js:7745
    (anonymous) @ (index):73
    (index):76 GET hxxps://xxx.guidasiblog.com/wp-content/plugins/jetpack/_inc/social-logos/data:application/x-font-woff;charset=utf-8;base64,
    
    

    comunque se vuoi verificare, sito e pagina da caricare sono:

    
    hxxps://xxx.guidasiblog.com/area-fad-formazione-elearning/
    
    hxxp://xxx.guidasi.com/test.asp
    
    
    

    The 'Access-Control-Allow-Origin' header contains multiple values....potrebbe essere dovuto al fatto che è sia nella pagina che nel web.config...proverò a toglierlo dal web.config ma non penso sia quello il problema...


  • User Attivo

    Invece e' proprio quello il problema, perche' soltanto un valore e' ammesso. Se ve ne sono piu' di uno, l'accesso alla pagina e' negato.

    "[...]but only one is allowed. Origin 'h t t p://w w w .guidasiblog.com' is therefore not allowed access."


  • User Attivo

    SEI UN GRANDE!!! FUNZIONA...la pagina si vede, naturalmente l'accesso all'area riservata non funziona ma questo è un problema a parte su cui indagherò a mente fresca...farò un post conclusivo riassumendo il problema e relativa soluzione a beneficio di tutti...

    mille grazie ed a buon rendere...
    Buona Notte


  • User Attivo

    OK, anche il problema di accesso all'area riservata è risolto, in effetti la gestione è un po' diversa dall'iframe...

    Anche se l'utilizzo di questa procedura, visivamente produce lo stesso effetto dell'iframe dal punto di vista funzionale c'è una certa differenza, ovvero se con l'iframe a tutti gli effetti lavoro sul form che risiede sul sito vecchio e la procedura di login si appoggia sul database di quel sito, caricando invece la pagina con jquery la gestione dello script diventa locale sul sito nuovo quindi tentando di fare il login la procedura fallisce non trovando il collegamento al database (il senso penso sia questo, magari a livello di programmazione la cosa è un po' diversa), ho risolto la cosa creando un form con campi user e password e li passa tramite get come parametri url ad una pagina di verifica in cui vengono confrontati con quelli presenti nel database, se c'è corrispondenza fa il login altrimenti ritorna tramite refer alla pagina precedente ovvero quella del login...direi che funziona tutto correttamente...

    Quindi a beneficio di tutti riepilogo tutta la procedura:

    Problema: ho l'esigenza di visualizzare una pagina html ospitata in un vecchio sito che gestisco io all'interno di una pagina di WordPress, cosa che si risolverebbe agevolmente utilizzando un iframe.
    Visto che in wordpress ed in generale, l'utilizzo dell'iframe non è ben visto da tutti i browser (firefox non li visualizza altri browser pare non abbiano problemi almeno nelle versioni più recenti), dal W3C e nelle politiche SEO, mi sono messo alla ricerca di una valida alternativa.

    Ho individuato la soluzione utilizzando jquery e con queste 4 righe di codice che carica in un div la pagina da visualizzare:

    
     
    <script src="hxxps://code.jquery.com/jquery-1.10.2.js"></script> (superfluo in wordpress è già caricata jquery)
    <div id="risultato"></div>
    <p>&nbsp;</p>
      <script>
    $('#risultato').load('hxxp://xxx.pagina-da-visualizzare.html', function() { 
    });
    ;
    </script>
    
    
    

    lo script funziona correttamente se voglio caricare una pagina presente sullo stesso dominio, ad esempio una pagina di wordpress ma fallisce se si tenta di caricare (come nel mio caso) una pagina da un dominio diverso, ciò è dovuto citando SkyLinx

    ...alla Same Origin Policy; a causa di restrizioni di sicurezza AJAX requests non possono caricare contenuti da un altro dominio (o anche dallo stesso dominio ma con subdomain/porta/protocollo diversi).

    Soluzione: inserire nella pagina richiamata dal dominio esterno:

    
    Response.AddHeader "Access-Control-Allow-Origin","*"
    

    a titolo di esempio la pagina richiamata potrebbe essere quindi:

    
    
    <%@LANGUAGE="JAVASCRIPT"%>
    <%
    Response.AddHeader("Access-Control-Allow-Origin", "*")
    %>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "hxxp://xxx.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="hxxp://xxx.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Documento senza titolo</title>
    </head>
    <body>
    prova inclusione pagina
    </body>
    </html>
    
    
    

    et Voilà il problema è risolto...

    Un grande ringraziamento va a SkyLinx senza il cui apporto starei ancora ad arrovellarmi...spero che tutta questa fatica sia utile anche ad altri...


  • User Attivo

    Figurati 😉