Errore HTTP 414. La richiesta di un URL è troppo lungo

Sto usando ckeditor per formattare i dati all’interno del mio textarea

<textarea id="editorAbout" rows="70" cols="80" name="editorAbout"></textarea>

Ora, quando cerco di postare questi dati utilizzando jQuery.ajax come questo,

var about=escape( $("#editorAbout").text());
            $.ajax({
             type: "POST",
             url: "../Allcammand.aspx?cmd=EditAboutCompany&about="+about,
             type:"post",
                async: false ,
                   success: function(response){                                       

                    },
                    error:function(xhr, ajaxOptions, thrownError){alert(xhr.responseText); }
            });

Ottengo l’errore

HTTP Errore 414. La richiesta di un URL è troppo lungo.

Ottengo un errore qui: http://iranfairco.com/example/errorLongUrl.aspx
Prova a cliccare sul Modificare il Testo pulsante in basso a sinistra della pagina.

Perché sta succedendo questo? Come posso risolvere?

  • Beh, si accoda tonnellate di testo URL. URL non sono progettati per gestire questo. È necessario inviare il testo nel corpo del POST, invece di provare a mettere nell’URL.
  • L’amore che si sta postando, ma è davvero un OTTENERE. 🙂
InformationsquelleAutor ashkufaraz | 2011-08-05

 

3 Replies
  1. 20

    Secondo questa domanda la massima pratico lunghezza di un URL è di 2000 caratteri. Questo non sta per essere in grado di tenere una massiccia articolo di Wikipedia come si sta tentando di inviare.

    Invece di mettere i dati sul URL che deve essere messa nel corpo di una richiesta POST. È necessario aggiungere un data valore dell’oggetto che si sta passando all’ajax chiamata di funzione. Come questo:

    function editAbout(){
    
        var about=escape( $("#editorAbout").text());
        $.ajax({
            url: "Allcammand.aspx?cmd=EditAboutCompany&idCompany="+getParam("idCompany"),
            type:"post",
            async: false,
            data: {
                about: about
            },
            success: function(response){                                       
            },
            error:function(xhr, ajaxOptions, thrownError){alert(xhr.responseText); ShowMessage("??? ?? ?????? ??????? ????","fail");}
        });
    }
    • come è possibile ricevere i dati(circa) in allCommand.aspx
    • posso ottenere questo da richiesta[“circa”]
    • quando allcommand tornano più di 20000 caratteri quindi… $.ajax({ url: “Allcammand.aspx?cmd=getAbout&idCompany=”+getParam(“idCompany”), async: false, success: function(response){alert(risposta); } });
    • La chiamata nel tuo commento non fa passare i dati.
    • era il tuo commento per avere un ulteriore problema o questa risposta risolvere il tuo problema?
  2. 1

    Nel mio caso, c’è stato un errore di run-time poco prima del post di chiamata. Fissaggio risolto il problema.

    L’errore di run-time è stato il tentativo di lettura $('#example').val() dove $('#example') elemento non esiste (ossia undefined).

    Sono sicuro che questo sarà certamente di aiuto a qualcuno.

  3. 0

    Nel mio caso, è stato generato l’errore, anche se stavo usando il ‘POST’ e la chiamata al server è stata un successo. Si è rivelata essere che mi mancava, l’attributo del tipo di dati…strano ma ora funziona

                return $.ajax({
                url: url,
                type: 'POST',
                dataType: 'json',
                data: JSON.stringify(data)
            })

Lascia un commento