在JQuery AJAX POST ...请求失败:URI太长(超过8190)

Kyl*_*yle 3 php apache ajax jquery post

我收到了错误:

request failed: URI too long (longer than 8190)

我在StackOverflow上看过其他帖子.这些帖子建议:

  • 不改变Apache设置(同意)
  • 使用帖子,没有得到
  • 不使用jsonp帖子

我正在使用jQuery的AJAX来POST:

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

这是我的印象你可以使用json而不是jsonp.正确?如果是这样,为什么我仍然会收到错误?

Dan*_*nor 6

您应该尝试将proccessData设置为false.

来自文档:

默认情况下,作为对象传入数据选项的数据(技术上,不是字符串)将被处理并转换为查询字符串,适合默认内容类型"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);}
});
Run Code Online (Sandbox Code Playgroud)

老实说,我认为这是自动的,但由于你的网址太长,所以值得一试.