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

    jquery ajax e download file

    Devo effettuare il download di un file usando ajax. lato backend ho una classe java che chiamata mi permette di effettuare il salvataggio del file richiesto. la classe funziona perchè l'ho testata senza l'utilizzo di ajax. Il problema è che ogni volta che clicco sul bottone per fare il download viene fatto il refresh della pagina. vorrei fare qualcosa con ajax e ho messo in piedi uno script per effettuare la chiamata. ho visto che fa la chiamata e torna indietro, però nn mi apre la finestra per fare il salvataggio. come devo fare per una cosa del genere?
    grazie a tutti

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Posta lo script ajax, o meglio ancora il link alla pagina pubblica
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    purtroppo la pagina nn è pubblica. cmq ti posso mettere lo script che utilizzo.

    codice:
     
    
    $(document).ready(function() { 
    	function submitAjaxForm(form, urlToCall){
    		$.ajax({    
    			url : urlToCall,  
    			data: $(form).serialize(), 
    			success : function (data,stato) { 
    				alert("success");
    			},    
    			error : function (richiesta,stato,errori) {        
    	
    			},
    			type: 'GET'
    		});
    	};
    			
    	$("#stampa").bind("click", function(){
    				submitAjaxForm("#idPrintForm", "<%=url%>");
    				});
    });
    dove url è creato dinamicamente da una funzione. il mio problema è che nn so come far aprire la finestra di salvataggio quando ritorna nel success

    edit: leggendo in giro mi sembra che questa cosa non sia possibile. ditemi che nn è vero!

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    non puoi, non sei tu che decidi se e quando mostrare la dialog per il download, è il browser. L'unico modo che io conosco(non credo ci siano altre soluzioni) per simulare un download ajax è utilizzando un iframe nascosto. Dovrebbe bastare aggiungere nel success la creazione del frame impostando l'attributo src con l'url del file da scaricare.

  5. #5
    il problema è che la mia pagina fa un submit del form in cui è presente una select. lato server in base al valore che viene inserito crea in modo dinamico il file e invia lo stream al broswer. a questo punto mi sa che la cosa nn sia proprio possibile...
    dato che questo nn si può fare chiedo un'altra cosa. se io faccio il submit di un form con target ="_blank" mi apre una nuova scheda in cui viene caricato il contenuto dello stream creato dal backend. se io invece volessi aprire il contenuto dello stream in un popup?

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    è possibile se utilizzi un iframe nascosto, ti ho già detto come, ma è ovvio che non devi restituire lo stream di dati ma l'url del file che hai appena creato a quel punto ti basta creare con jquery il frame nascosto con src uguale all'url per il download. In questo modo la pagina non si ricaricerà, per questo parlavo di una simulazione di download con ajax. Quindi ricapitolando devi modificare lo script aggiungendo la creazione dell'iframe e la parte server per farti restituire l'url.

  7. #7
    ok vedrò di fare così. grazie a tutti

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.