[Ajax] Leggere in contenuto da un URL esterno

felino

Utente Attivo
12 Dic 2013
940
10
18
Aci Catena (Catania)
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:
Codice:
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>';
		}
	});
});
}

Il progetto è in Asp.net, posso risolvere in maniera diversa?

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

Ho trovato una libreria Jquery che da supporto per CROSS, cosa ne pensate?
La conoscete?

Se eseguo una richiesta del tipo:
Codice:
$.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:
Codice:
Bloccata richiesta multiorigine (cross-origin): il criterio di corrispondenza dell’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.
 
Ho risolto così:
Codice:
$.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.
 

Discussioni simili