В JQuery AJAX POST ... запрос не выполнен: слишком длинный URI (длиннее 8190) - PullRequest
3 голосов
/ 17 декабря 2011

Я получил ошибку:

request failed: URI too long (longer than 8190)

Я видел другие сообщения на StackOverflow для этого.Эти сообщения рекомендуют:

  • Не изменять настройки Apache (согласен)
  • Использовать сообщение, не получить
  • Не использовать jsonp с сообщением

Я использую AJAX jQuery для POST:

    $.ajax({
        url: "test.php",
        dataType: "json",
        data: paras,
        type: "POST",
        success: function(ret){callback(ret);}
    });

У меня сложилось впечатление, что вы можете использовать json, но не jsonp.Правильный?Если так, почему я все еще получаю ошибку?

Ответы [ 2 ]

6 голосов
/ 17 декабря 2011

Вы должны попытаться установить для параметра proccessData значение false.

Из документов:

По умолчанию данные передаются в параметр данных как объект (технически, что угодно, кромеstring) будет обработан и преобразован в строку запроса, соответствующую типу содержимого по умолчанию «application / x-www-form-urlencoded».Если вы хотите отправить DOMDocument или другие необработанные данные, установите для этого параметра значение false.

, чтобы предотвратить добавление данных в URL:

$.ajax({
    url: "test.php",
    dataType: "application/json",
    data: paras,
    type: "POST",
    proccessData: false, // this is true by default
    success: function(ret){callback(ret);}
});

Честно говоря, я думал, что это было автоматически, но так как ваш URL слишком длинный, стоит попробовать.

0 голосов
/ 23 июня 2015

Я столкнулся с этой проблемой при использовании jQuery для отправки больших форм и смог решить ее, добавив этот плагин .

Например, используя следующий код для отправки формыПосле добавления плагина проблема была решена для меня:

    $(formSelectorHere).ajaxSubmit({
        url: myURL,
        type: 'post',
        contentType: "multipart/form-data",
        data: $(this).serialize(),
        success: function(data) {
        function(data) {
            //success code here//
        }
    });

Если вы не используете это для отправки формы, это может не относиться к вам и не решит вашу проблему, но это наиболееОбычная ситуация, когда возникает эта проблема, поэтому я решил, что стоит упомянуть.(Плагин также должен иметь возможность отправлять форму, используя JSON, но лично не проверял ее).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...