Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione HUAWEI Mate X7: un foldable ottimo, ma restano i soliti problemi
Recensione HUAWEI Mate X7: un foldable ottimo, ma restano i soliti problemi
Mate X7 rinnova la sfida nel segmento dei pieghevoli premium puntando su un design ancora più sottile e resistente, unito al ritorno dei processori proprietari della serie Kirin. L'assenza dei servizi Google e del 5G pesa ancora sull'esperienza utente, ma il comparto fotografico e la qualità costruttiva cercano di compensare queste mancanze strutturali con soluzioni ingegneristiche di altissimo livello
Nioh 3: souls-like punitivo e Action RPG
Nioh 3: souls-like punitivo e Action RPG
Nioh 3 aggiorna la formula Team NINJA con aree esplorabili più grandi, due stili di combattimento intercambiabili al volo (Samurai e Ninja) e un sistema di progressione pieno di attività, basi nemiche e sfide legate al Crogiolo. La recensione entra nel dettaglio su combattimento, build, progressione e requisiti PC
Test in super anteprima di Navimow i220 LiDAR: il robot tagliaerba per tutti
Test in super anteprima di Navimow i220 LiDAR: il robot tagliaerba per tutti
La facilità di installazione e la completa automazione di tutte le fasi di utilizzo, rendono questo prodotto l'ideale per molti clienti. Ecco com'è andata la nostra prova in anteprima
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 09-12-2014, 17:52   #1
robertino_salemi
Senior Member
 
L'Avatar di robertino_salemi
 
Iscritto dal: Apr 2009
Città: Aci Catena (CT)
Messaggi: 1021
[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:
[code]
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è:
Codice:
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.
robertino_salemi è offline   Rispondi citando il messaggio o parte di esso
Old 09-12-2014, 22:22   #2
BlackAuron
Member
 
Iscritto dal: May 2006
Messaggi: 86
Per farla breve ... non puoi a causa della same origin policy. http://en.wikipedia.org/wiki/Same-origin_policy
esistono trucchetti per raggirarla, ma non sono affidabili, e son solitamente lenti.
BlackAuron è offline   Rispondi citando il messaggio o parte di esso
Old 09-12-2014, 23:01   #3
robertino_salemi
Senior Member
 
L'Avatar di robertino_salemi
 
Iscritto dal: Apr 2009
Città: Aci Catena (CT)
Messaggi: 1021
Capisco, però l'URL interrogato non è altro che un server locale presente nella mia rete locale...
robertino_salemi è offline   Rispondi citando il messaggio o parte di esso
Old 10-12-2014, 00:24   #4
OoZic
Senior Member
 
L'Avatar di OoZic
 
Iscritto dal: Nov 2010
Città: Londra
Messaggi: 620
Qual'è l'URL della pagina dove gira lo script e qual'è quello della risorsa che vuoi includere?

Eventualmente devi attivare CORS sul tuo webserver
http://en.wikipedia.org/wiki/Cross-o...source_sharing
__________________
> This is me <
When you gaze long into an abyss the abyss also gazes into you.
OoZic è offline   Rispondi citando il messaggio o parte di esso
Old 10-12-2014, 10:19   #5
Daniels118
Senior Member
 
L'Avatar di Daniels118
 
Iscritto dal: Jan 2014
Messaggi: 852
Potresti lasciare che sia il server a fare la get sull'altro dominio e fargli inviare la risposta sulla tua pagina. In pratica la pagina del dominio A fa una richiesta ajax (preferibilmente una post) verso il suo server passando come parametro l'url di una pagina appartenente al dominio B, il server fa una richiesta per tale url ed inserisce la risposta nella medesima chiamata ajax. Se il dominio B richiede l'utilizzo dei cookie la cosa si complica un po', soprattutto se è necessaria l'autenticazione, ma è comunque fattibile.
Daniels118 è offline   Rispondi citando il messaggio o parte di esso
Old 10-12-2014, 10:42   #6
robertino_salemi
Senior Member
 
L'Avatar di robertino_salemi
 
Iscritto dal: Apr 2009
Città: Aci Catena (CT)
Messaggi: 1021
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?

Daniels118, potresti darmi qualche dettaglio in più?

Grazie.
robertino_salemi è offline   Rispondi citando il messaggio o parte di esso
Old 10-12-2014, 10:50   #7
tomminno
Senior Member
 
Iscritto dal: Oct 2005
Messaggi: 3306
Quote:
Originariamente inviato da robertino_salemi Guarda i messaggi
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?

Daniels118, potresti darmi qualche dettaglio in più?

Grazie.
Considera che per un utente qualsiasi che si trovi ad utilizzare quel sito quell'url risulterebbe irraggiungibile...
tomminno è offline   Rispondi citando il messaggio o parte di esso
Old 10-12-2014, 11:03   #8
robertino_salemi
Senior Member
 
L'Avatar di robertino_salemi
 
Iscritto dal: Apr 2009
Città: Aci Catena (CT)
Messaggi: 1021
Quote:
Originariamente inviato da tomminno Guarda i messaggi
Considera che per un utente qualsiasi che si trovi ad utilizzare quel sito quell'url risulterebbe irraggiungibile...
Si tratta di un progetto non pubblico, ma utilizzato solo all'interno di una LAN.

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.
robertino_salemi è offline   Rispondi citando il messaggio o parte di esso
Old 10-12-2014, 11:47   #9
Daniels118
Senior Member
 
L'Avatar di Daniels118
 
Iscritto dal: Jan 2014
Messaggi: 852
Ho dato un'occhiata al plugin che hai trovato, è veramente interessante.
In questa pagina è spiegato come funziona, il quarto metodo (Setting up a local proxy) fa praticamente quello che ti dicevo prima.
Gli altri metodi presuppongono che tu abbia la possibilità di modificare il servizio presente sull'altro dominio in modo da adeguarlo alle richieste cross-dominio, il proxy invece è più flessibile (e direi anche più immediato), valuta tu cosa puoi utilizzare e quale metodo ritieni più conveniente.
Daniels118 è offline   Rispondi citando il messaggio o parte di esso
Old 10-12-2014, 12:03   #10
tomminno
Senior Member
 
Iscritto dal: Oct 2005
Messaggi: 3306
Quote:
Originariamente inviato da robertino_salemi Guarda i messaggi
Si tratta di un progetto non pubblico, ma utilizzato solo all'interno di una LAN.

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.
Il server web che risponde all'indirizzo my_url deve aggiungere l'header Access-Control-Allow-Origin specificando * intendendo che chiunque lo possa richiamare o specificando il nome dell'host abilitato al CORS. Se non fai questo non può funzionare solo con il supporto lato client.
tomminno è offline   Rispondi citando il messaggio o parte di esso
Old 11-12-2014, 14:53   #11
robertino_salemi
Senior Member
 
L'Avatar di robertino_salemi
 
Iscritto dal: Apr 2009
Città: Aci Catena (CT)
Messaggi: 1021
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.
robertino_salemi è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Recensione HUAWEI Mate X7: un foldable ottimo, ma restano i soliti problemi Recensione HUAWEI Mate X7: un foldable ottimo, m...
Nioh 3: souls-like punitivo e Action RPG Nioh 3: souls-like punitivo e Action RPG
Test in super anteprima di Navimow i220 LiDAR: il robot tagliaerba per tutti Test in super anteprima di Navimow i220 LiDAR: i...
Dark Perk Ergo e Sym provati tra wireless, software via browser e peso ridotto Dark Perk Ergo e Sym provati tra wireless, softw...
DJI RS 5: stabilizzazione e tracking intelligente per ogni videomaker DJI RS 5: stabilizzazione e tracking intelligent...
Reddit punterà sull'AI per miglio...
Samsung ha obiettivi molto ambiziosi per...
I produttori non faranno sconti sulle me...
Ubisoft potrebbe cedere pezzi se il pian...
Qualcomm potrebbe utilizzare una tecnolo...
Starfield per Nintendo Switch 2 potrebbe...
Un MacBook Pro a -300€, i MacBook Air M4...
Amazon abbassa i prezzi sugli iPhone: sc...
Amazon, ancora sconti sugli smartphone A...
iPhone Air 2 'riciclerà' alcuni c...
Offerta Amazon da non perdere: lo speake...
Nioh 3 debutta alla grande su Steam: pri...
Al centro della Via Lattea ci potrebbe e...
Elon Musk ora guarda alla Luna: SpaceX p...
La Cina ha lanciato nuovamente lo spazio...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 23:02.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v