Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11

Discussione: S.ajax attivare CORS

  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2007
    Messaggi
    29

    S.ajax attivare CORS

    Salve a tutti .
    il mio problema è il seguente:
    nel mio sito ho dei link del genere :

    <a class="map" href="https://goo.gl/maps/Amu3h">apri mappa</a>

    vorrei indirizzare tale output su un div overlayer quindi senza aprire nuove finestre etc etc
    ho letto che il metodo $.ajax non permette di caricare pagine da altri domini

    poi però l'errore che vedo sulla consol bar mi dice

    Bloccata richiesta multiorigine (cross-origin): il criterio di corrispondenza dell’origine non consente la lettura della risorsa remota da https://goo.gl/maps/Amu3h. È possibile risolvere il problema spostando la risorsa sullo stesso dominio o attivando CORS.

    allorchè faccio qualche indagine e sembra che $.ajax può essere attivato per il cross domain
    non capisco però come devo strutturare la funzione:

    $(".map").click(
    function(e){
    e.preventDefault;
    $.ajax({
    url:$(this).attr("href"),
    type:"POST",
    crossDomain:true,
    dataType:"html",
    xhrFields: {
    withCredentials: true
    },
    success:
    function(data){
    $("#popup").html(data);
    $("#popup").fadeIn("slow");
    }


    });




    });

    Chi mi illumina ??

    grazie

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Ciao come tu stesso hai già riscontrato non puoi eseguire chiamate Ajax dirette su domini esterni, la soluzione più semplice e inserire un iframe nel div che punta al sito esterno oppure (visto che mi sembrano le mappe di Google) ti studi https://developers.google.com recuperando i dati in "modalità" json (operazione abbastanza complessa che richiede una discreta conoscenza di js)

    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Utente di HTML.it L'avatar di cassano
    Registrato dal
    Aug 2004
    Messaggi
    3,002
    Scusa però se il server accetta chiamate crossDomain non è possibile farlo ?

  4. #4
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Quote Originariamente inviata da cassano Visualizza il messaggio
    Scusa però se il server accetta chiamate crossDomain non è possibile farlo ?
    No, il blocco e dato da js non dal dominio esterno.
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2007
    Messaggi
    29
    Ciao e grazie della risposta. La soluzione del iframe è quella che sto già utilizzando ma volevo
    provare una cosa diversa. Leggerò l'articolo che mi hai consigliato sperando di capirci qualcosa.
    A questo punto però la domanda mi sorge spontanea se come tu dici
    Quote Originariamente inviata da cavicchiandrea Visualizza il messaggio
    No, il blocco e dato da js non dal dominio esterno.
    cosa si intende per attivare CORS e soprattutto le opzioni della funzione $.ajax
    crossDomain:true, a cosa serve se il js non permette di fare ciò ?!
    non capisco...

  6. #6
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Non conosco nessuno dei due, controlla sul sito dove hai preso quel codice
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  7. #7
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    il CORS lo deve attivare il server, tu non devi fare nulla, se la chiamata viene bloccata dal browser significa che il server non permette chiamate da altri domini(o cmq non da quello di origine). L'attributo "crossDomain" di jquery non ha nulla a che vedere con CORS

  8. #8
    Utente di HTML.it L'avatar di cassano
    Registrato dal
    Aug 2004
    Messaggi
    3,002
    Quindi allora è come dico io, è il serve che deve accettare chiamate CORS.

  9. #9

  10. #10
    basta sostituire dataType:"html" con dataType:"jsonp" e funziona

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.