• Super User

    [Ajax] Leggere in contenuto da un URL esterno

    Salve a tutti,
    sicuramente è un problema trattato molte volte, ma nonostante le ricerche, non sono riuscito a trovare una valida soluzione.

    Tramite Jquery, vorrei leggere il contento di una pagina esterna al mio dominio, contenente una tabella, dopo averla letta fare una conversione in testo da inserire in un DIV.

    Il problema riguarda solo la prima parte, cioè la lettura del contenuto tramite URL.

    Ho provato con:

    
    var content;
    $.ajax({
    	url: url,
    	type: 'GET',
    	success: function (result) {
    		content = result;
    	}
    });
    [code]
    Ma non succede nulla.
    
    
    Per testare la mia funziona ho provato a valorizzare "content" a mano, come faccio ad applicargli la mia funzione, cioè:
    [code]
    function showText (content){
    var textToShow;
    $('table#GetFeatureInfoTable tr.cellValue').each(function () {
    	$('table#GetFeatureInfoTable tr.cellValue td').each(function () {
    		if ($(this).hasClass('ID')) {
    			textToShow = '<div class="featuredID">id: ' + $(this).html() + '</div>';
    		}
    		if ($(this).hasClass('DESCRIPTION')) {
    			textToShow = textToShow + '<div class="description">Descrizione: ' + $(this).html() + '</div>';
    		}
    	});
    });
    }
    
    

    Grazie.


  • Super User

    Si tratta di url locali, del tipo http://nome-computer:8080/server.exe

    Ho trovato una libreria Jquery che da supporto per [url=http://www.ajax-cross-origin.com]CROSS, cosa ne pensate?
    La conoscete?

    Se eseguo una richiesta del tipo:

    
    $.ajax({
    	type: 'POST',
    	url: **my_url**,
    	crossDomain: true,
    	dataType: 'json',
    	success: function (responseData, textStatus, jqXHR) {
    		console.log(responseData);
    	},
    	error: function (responseData, textStatus, errorThrown) {
    		console.warn(responseData, textStatus, errorThrown);
    		alert('CORS failed - ' + textStatus);
    	}
    });
    
    
    

    la console mi restituisce:

    
    Bloccata richiesta multiorigine (cross-origin): il criterio di corrispondenza dell&#8217;origine non consente la lettura della risorsa remota da **my_url** È possibile risolvere il problema spostando la risorsa sullo stesso dominio o attivando CORS.
    
    

    Grazie.


  • Super User

    Ho risolto così:

    
    $.ajax({
        url: jsonUrl,
        type: 'GET',
        crossDomain: true,
        dataType: 'jsonp',
        dataCharset: 'jsonp',
        //contentType: 'application/json',
        success: function (result) {
            //my_code
        },
        error: function (result) {
            //my_code
        }
    });
    
    

    JsonP serve ad eseguire chiamate Ajax verso altri domini.


  • Moderatore

    io personalmente ho rubato i risultati calcistici dal livescore.com
    Una pagina php che mi gestisce la connessione e tramite la funzione get_file_contents, faccio una copia.
    Pulisco il codice
    e lo stampo.
    Ora tamite JS ( ajax ) ho ricreato il tutto.

    visibile qui: bookmakersonline.biz

    Ultima cosa: inserisci sempre 'cache: false' così eviti che venga utilizzata la cache del browser


  • Super User

    😄 Ahahahah, complimenti!

    Ecco, il cache settato a false è molto, ma dico molto, interessante...