javascript - Ajax 请求 ($.ajax(type :'GET' )) 不会传递大于 45 的数组,但是 ($.ajax(type :'POST' )) 会传递。为什么?

标签 javascript jquery ajax arrays asp.net-mvc-3

我正在处理一个 MVC 3 项目,我有一个 ajax 请求($.ajax),该请求将 javascript 数组传递给 Controller ​​并返回 HTML 结果(带有选择元素和选项的部分 View )。

当数组为46项或更大时,不会调用 Controller (我在 Controller 上设置了一个断点,但没有触发)。

然后我将 ajax 更改为请求类型为“POST”的 $.ajax,并且请求运行正常,并且存在数组中的所有数据。

我用谷歌搜索试图理解为什么会这样,但除了堆栈溢出的这个问题之外,没有找到任何结果,这对我没有太大帮助,因为它通常在 get 和 post 请求之间的区别 - 没有观察到服务器上的更改(这是我想要的)与服务器端的更改。我只是加载数据供用户选择。

也许是我对 ajax get 和 post 请求的理解有点模糊,但如果有人遇到过此类问题并理解原因,我将非常感谢您的反馈。 :)

下面是我尝试执行的代码示例:

$(function () {
  $('#SelectedCategory').change(function () {

    //create array of selected attributes to limit returned results set
    var currentAttribs = new Array();
    $('#cboSelectedAttributes option').each(function () {
        currentAttribs.push(this.text);
    });

    //retrieve available attributes from server excluding current selections
    $.ajax({
        url: folder + '/Index_GetAttributes',
        type: "POST",
        data: { strCategory: $(this).find(':selected').val(), lstCurrentAttributes: currentAttribs },
        traditional: true,
        success: function (result) {
            $('#divAvailAAttribs').html(result);
        }
    });
  });
});

谢谢!

最佳答案

一般来说,GET 比 POST 更短。虽然实际支持的请求数据大小取决于具体服务器,但不建议 GET 请求 URI 超过 255 字节。

我建议使用一些网络调试工具来检查您的 GET 请求的长度,然后您会了解更多。

关于javascript - Ajax 请求 ($.ajax(type :'GET' )) 不会传递大于 45 的数组,但是 ($.ajax(type :'POST' )) 会传递。为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16101969/

相关文章:

javascript - jQuery 可拖动/可内容编辑代码未正确响应

jQuery 将 XML 标签转换为大写

javascript - 向数据表添加页面控件,但当代码运行时,页面中没有显示任何内容

jquery - 如何正确更新 Highcharts Sankey 上的节点?

对象中的 Javascript 值返回未定义

ajax - Jquery UI slider - 输入值并将 slider 移动到位置

python - 使用 python 和 Flask,如何将动态路由参数传递给 AJAX 请求调用的新路由?

javascript - Ajax Double Code如何让它更短

javascript - 如何在 React Native 中读取或下载文件?

javascript - 我想显示 timepicker.js