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

    Script Proxy / utilizzo JSONP - Aiuto

    Ciao a tutti.

    Sul mio sito devo connettermi a dei dati JSON pubblicati su un server esterno.
    La url di riferimento è la seguente: http://www.libreriadelsanto.it/p/categories/bst.tl

    Le limitazioni Cross-domain di Javascript inizialmente mi hanno portato a realizzare una pagina proxy sul mio server per il quale avevo preso spunto dallo script PHP pubblicato su questo POST: http://forum.html.it/forum/showthrea...ighlight=proxy

    In locale tutto funziona perfettamente.
    Questo è il mio script funzionante (dove getjson.php è il mio script proxy):
    codice:
    		$url="http://www.libreriadelsanto.it/p/categories/bst.tl";
    		$.ajax({
    			type: "GET",
    			url: "getjson.php?URL=" + $url,
    			dataType: 'json',
    
    			success: function(cat)
    			{
    				for(var n = 0; n < cat.length; n++)
    				{
    					cat_id=cat[n].id;
    					cat_nome=cat[n].nome;
    					cat_tipologia=cat[n].tipologia;
    					cat_livello=cat[n].livello;
    					
    					arr_categorie_prodotti[n]= new Array(cat_id,cat_nome,cat_tipologia,cat_livello);
    				}
    			},
    			error:function(XMLHttpRequest, status, error){
    				//alert("XMLHttpRequest: "+XMLHttpRequest);
    				alert("Impossibile recuperare i Dati delle categorie: "+status);
    				//alert("Error: "+error);
    				//alert("XMLHttpRequest readyState: "+XMLHttpRequest.readyState);
    				//alert("XMLHttpRequest responseText: "+XMLHttpRequest.responseText);
    			},
    			beforeSend: function(){
    				//alert("BEFORELOADING")
    			},
    			complete: function(){
    				//alert("COMPLETE")
    			}
    		});
    Ottengo il mio Json e metto i dati dentro un array.

    Quando però sono andato a pubblicare online il mio script, sono iniziati i problemi.
    Le librerie CURL non sono installate.
    Ora devo assolutamente risolvere questo problema.

    Da come ho capito le strade possibili sono 2, ma sono aperto a nuove soluzioni (Considerando che io non ho alcun accesso al sito remoto da cui i dati vengono prelavati):
    Soluzione 1) Utilizzare il JSONP, che dovrebbe abbattere le problematiche cross-domain.
    Il problema e che ho fatto delle prove per utilizzare JSONP con la mia URL di riferimento, ma non riesco proprio a farlo funzionare.
    Jquery sul metodo getJSON dovrebbe avere implementato il JSONP, ma io proprio non riesco a farlo funzionare
    Ma lo script lato server deve essere abilitato per sfruttare JSONP, oppure rimane invariato?
    Riuscite ad aiutarmi nella realizzazione dello script, oppure a suggerirmi degli esempi funzionanti?

    Soluzione 2) Realizzare uno script proxy con una tecnologia diversa da Curl. In questo caso non so se sia possibile realizzarlo ed è per questo che principalmente ho scritto su questo Forum

    Avete esperienza in merito?
    Potete aiutarmi in uno dei 2 modi oppure suggerirmi un ulteriore strada?

    Grazie, maxtac

  2. #2

  3. #3
    secondo me la strada corretta è usare jsonp, devi vedere che errore ti da' jquery, secondo me il problema è li...

    in teoria dovrebbe bastar settare:

    codice:
    dataType: 'jsonp'
    strano non funzioni, io l'ho usato parecchie volte senza problemi
    « Se nella prima mezz'ora non capisci chi è il pollo, allora il pollo sei tu. » [Thomas "Amarillo Slim" Preston, campione del mondo di poker]

  4. #4
    Ma il formato JSON e JSONP sono diversi? Te lo chiedo perchè io non ho possibilità di modificare il codice del server dal quale leggo i dati, e quindi non posso modificare il formato dei dati che leggo.

  5. #5
    json funziona solo se lo script che richiami sta sullo stesso dominio, per ovviare a questo problema si usa jsonp, che è cross-domain.

    Non richiede modifiche lato server...
    « Se nella prima mezz'ora non capisci chi è il pollo, allora il pollo sei tu. » [Thomas "Amarillo Slim" Preston, campione del mondo di poker]

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.