2010-07-19 12 views
5

Esiste un modo per specificare un modulo tramite il tipo o l'URL di azione per non aprire la risposta? In altre parole, vorrei inviare le informazioni al server, ma non fare nulla sul client. So che posso usare ajax e ignorare la risposta, ma vorrei evitare di aggiungere tutti i js al mio codice, se possibile.C'è un modo per ignorare la risposta del modulo?

Modifica: non intendevo limitarmi al modulo html. Nel mio caso sono state accettate anche soluzioni lato server.

risposta

8

Avere il ritorno del server HTTP 204 (No Content) dopo la modulo di presentazione. Secondo the HTTP 1.1 spec:

10.2.5 204 No Content

Il server ha soddisfatto la richiesta , ma non ha bisogno di restituire un corpo dell'entità , e potrebbe desiderare di tornare aggiornato metainformazione. La risposta MAG include nuove o aggiornate metainformazione sotto forma di entità-intestazioni, che se presente DOVREBBE essere associata alla variante richiesta .

Se il client è un agente utente, DEVONO NON cambiare la sua vista documento da quello che ha causato la richiesta di da inviare. Questa risposta è principalmente destinato a consentire l'input per azioni avvenire senza causare un cambiamento di vista documento attivo dell'agente dell'utente, sebbene qualsiasi nuova o aggiornata metainformation deve essere applicato al documento attualmente l'attivo agente utente vista.

La risposta 204 non deve includere un corpo del messaggio , e quindi è sempre risolto dalla prima riga vuota dopo i campi di intestazione.

Questo suona esattamente come desideri.

+0

Perfetto, grazie! – Adam

0

Con ASP.NET si può avere una pagina che elabora il modulo e termina semplicemente la risposta immediatamente, questo lascerà l'utente nella stessa pagina.

Tuttavia, nessuna risposta per l'utente a tutti non è la migliore esperienza utente .....

+0

L'esperienza utente è in realtà il motivo della domanda. Attualmente viene restituito un file, ma in questo caso è vuoto e non vogliamo che il browser chieda "open/save". – Adam

4

provare questo:

<iframe id="invisible" ... 

<form target="invisible" ... 
+1

Non so perché sia ​​stato downvoted, questa è una buona idea, facile da implementare e funziona cross-browser. – Kobi

+0

Questo in realtà risponde alla domanda posta. Se la domanda è: "Esiste un modo per ignorare la risposta del modulo", la risposta non è modificare la risposta, ma trovare un modo per ignorare la risposta. Questa tecnica ha appena salvato il nostro bacon. – Speck

0

Ho trovato che anche l'attributo nome deve essere specificato (ho provato in IE11). E.g:

<iframe id="invisible" name="invisible" style="display:none;"></iframe> 
<form method="post" target="invisible" action="url.com/whatever?x=y" id="fileForm" enctype="multipart/form-data"> 
Problemi correlati