/ / Chiamata Ajax che supera la lunghezza URI accettabile - .net, asp.net, jquery, ajax, asp.net-mvc-2

Chiamata Ajax che supera la lunghezza URI accettabile - .net, asp.net, jquery, ajax, asp.net-mvc-2

Ho un ASP.Configurazione MVC NET e sto creando un generatore di report. Sto emettendo una tabella JQuery, in modo che l'utente possa ordinarlo e riorganizzarlo, prima di recuperarlo come PDF. Il mio componente PDF è basato su .NET, quindi ho bisogno di inviare la tabella modificata al server tramite AJAX.

Il problema è che l'URI può diventare grande come100k caratteri, facendo rispondere il server con uno stato di 414 (Request-URI Too Long). Sembra che IIS non consenta gli URI superiori a qualche migliaio di caratteri.

Ammetto che mi sembra strano comporre un URL così grande, quindi penso che mi manchi qualcosa. C'è un altro modo per inviare i dati al server o forse è possibile risolverli in un altro modo?

risposte:

5 per risposta № 1

Il metodo consigliato per inviare dati di lunghezza superiore a poche centinaia di caratteri consiste nell'utilizzare il POST HTTP al posto di GET. GET aggiunge tutti i dati all'URI come coppie chiave-valore (ad es. ?foo=bar&baz=blah), mentre POST inserisce i dati nella richiestacorpo. Esiste anche una limitazione della lunghezza totale della richiesta, ma è molto più ampia del limite imposto agli URI. Sul lato jQuery, passare da GET a POST è banale: leggi la documentazione su jQuery.ajax () per i dettagli. Sul lato server, potrebbe essere necessario modificare le cose in modo che i parametri vengano letti dal POST anziché da GET, ma nella maggior parte dei casi, anche questo è relativamente facile.


2 per risposta № 2

La chiave nella tua domanda è inviare. Devi POST di nuovo al server.

API metodo post JQuery AJAX.

$.post(url, [data], [success(data, textStatus, XMLHttpRequest)], [dataType]);