Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    CORS “Access-Control-Allow-Origin” mancante

    E buongiorno, al chiamare della mia bella funzione Json ricevo in console questo messaggio:

    Bloccata richiesta multiorigine (cross-origin): il criterio di corrispondenza dell’origine non consente la lettura della risorsa remota da https://www3.me/api/miosito.com.php. Motivo: header CORS “Access-Control-Allow-Origin” mancante.

    Qualcuno mi sa dire che cosa devo fare ? Dipende da me o dipende dal sito a cui mi collego ?
    Grazie

    Alf

  2. #2
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    1,225
    Quote Originariamente inviata da alfredo.benni Visualizza il messaggio
    E buongiorno, al chiamare della mia bella funzione Json ricevo in console questo messaggio:

    Bloccata richiesta multiorigine (cross-origin): il criterio di corrispondenza dell’origine non consente la lettura della risorsa remota da https://www3.me/api/miosito.com.php. Motivo: header CORS “Access-Control-Allow-Origin” mancante.

    Qualcuno mi sa dire che cosa devo fare ? Dipende da me o dipende dal sito a cui mi collego ?
    Grazie

    Alf
    ciao
    dipende dalle policy che vogliono adottare nel sito che chiami. In pratica dal sito dovrebbero abilitare accesso da domini esterni.
    Il blocco ovviamente avviene per scelta del browser (quindi nella tua macchina) che diligentemente segue la politica del sito, ma nulla ti vieta comunque di fare la richiesta fuori dal browser, magari tramite app o comunque non passando per il browser, in quel caso non conta nulla la politica adottata dal sito per il crossdomain, la limitazione vale solo per i browser.
    Al più potresti fare la richiesta tramite server (il tuo server, non il browser dell’utente) tramite semplice chiamata http, e poi una volta che il tuo server (che non segue CORS) recupera le info le rigira al tuo client. In questo modo il tuo utente manco sa di aver fatto una richiesta esterna.

  3. #3
    Quindi se ho ben capito quell che hai appena detto:
    Il mio browser fa la richiesta al mio server che fa la chiamata al server remoto.
    Ma il server remoto non accetta chiamate da tutti. Il mio browser lo capisce e nega l'accesso.

    Però mi dici si può aggirare. Ad esempio mettendo in un frame ?
    Mi puoi fare un esempio di chiamata ?

    Ora io faccio una chiamata JavaScript

    Ciao

    Alf

  4. #4
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    1,225
    D
    Quote Originariamente inviata da alfredo.benni Visualizza il messaggio
    Quindi se ho ben capito quell che hai appena detto:
    Il mio browser fa la richiesta al mio server che fa la chiamata al server remoto.
    Ma il server remoto non accetta chiamate da tutti. Il mio browser lo capisce e nega l'accesso.

    Però mi dici si può aggirare. Ad esempio mettendo in un frame ?
    Mi puoi fare un esempio di chiamata ?

    Ora io faccio una chiamata JavaScript

    Ciao

    Alf
    Tu chiami sito1.com/Index.html ad esempio dentro c’è lo script che chiama ad esempio sito1.com/api via ajax. A questo punto il tutto funziona a prescindere dal cors in quanto la chiamata proviene dallo stesso dominio. Ma se chiamo sito2.com/IndexedDB.html e dentro c’è la chiamata a sito1.com/api allora il browser quando chiama sito1 “decide” se fartelo fare o no in base alle impostazioni nel server sito1.
    questo significa che è il browser a bloccare la richiesta, quindi se escludi il browser il problema non sussiste.
    Come escludere il browser e stiamo parlando di sito web? Lo fa il tuo server! Per capirci il tuo utente va nel tuo sito (sito2.com) e il server una volta richiesta la pagina prima di restituire un output esegue una chiamata http (quindi non usa browser ma fa proprio lui la chiamata) a sito1.com/api recupera i dati che li servono, una volta ottenuto la restituisce all’utente di sito2.com. In questo caso il browser dell’utente non fa alcuna chiamata fuori dal dominio, quindi indipendente dal cors su sito1.com
    Purtroppo non ho tempo ora di farti un esempio, ma nel trovi nel forum stesso.
    Guarda questa discussione, questo è quello che intendo.



    Edit:
    Ovviamente nel post citato si parla di risultato json, ma nel caso voglia mostrare l'output del sito1.com così com'è ti basta recuperarlo dal server così com'è (senza nessuna elaborazione) e una volta arrivato su sito2.com l'aggiungi al dom della pagina.
    Ultima modifica di U235; 11-04-2019 a 10:37

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 © 2019 vBulletin Solutions, Inc. All rights reserved.