传递巨大数据的Ajax Post方法问题

时间:2013-10-16 10:11:59

标签: ajax jquery cakephp

伙计

我们正面临着jquery(1.8.3)的一个奇怪问题,我们正在使用cakePHP

enter image description here

根据图片

我们的假设是我们在POST方法中使用ajax调用发送数据(大约500+)。

我们在所有主流浏览器中遇到此问题。

enter image description here

如上所述(在chrome中),我们在控制台中收到此错误,我们在ajax调用中传递了618个目标。

让我们知道解决这个问题的工作。

我的ajax电话如下

function validate_test() {
        $("#btn1").empty();
        var ele = document.getElementById('frm_searchDateFrom').value;
        var ele2 = document.getElementById('frm_searchDateTo').value;
        var sub_url = '<?php echo $this->Html->url('/', true); ?>';
        var url = sub_url + "admin/reports/check_originator/" + ele +"/"+ ele2 +"/"+ $("#destination").val();
        alert(url);
        jQuery.ajax({
            type: "POST",
            datatype: "json",
            url: url,
            success: function(data)
            {
                var el = $("select#btn1").multiselect();
                var d;
                var results=data.split(",");
                for(d=0;d<results.length;d++) {
                var d;
                var v = results[d], opt = $('<option />', {
                    value: v,
                    text: v
                });
                opt.appendTo( el );
                el.multiselect('refresh');
                }
            }
        })
    }

1 个答案:

答案 0 :(得分:0)

在您的JQuery Ajax方法中,而不是将所有这些详细信息作为url查询参数发送,方法是将这些详细信息包装在对象中。

function validate_test() {
        $("#btn1").empty();
        var ele = document.getElementById('frm_searchDateFrom').value;
        var ele2 = document.getElementById('frm_searchDateTo').value;
        var sub_url = '<?php echo $this->Html->url('/', true); ?>';
        var url = sub_url + "admin/reports/check_originator/";
        var formdata=ele +"/"+ ele2 +"/"+ $("#destination").val();//put form data's in an object 
        alert(url);
        jQuery.ajax({
            type: "POST",
            datatype: "json",
            data:formdata,//send the form data object in post 
            url: url,
            success: function(data)
            {
                var el = $("select#btn1").multiselect();
                var d;
                var results=data.split(",");
                for(d=0;d<results.length;d++) {
                var d;
                var v = results[d], opt = $('<option />', {
                    value: v,
                    text: v
                });
                opt.appendTo( el );
                el.multiselect('refresh');
                }
            }
        })
    }

另请参考这个小提琴(不是我的): http://jsfiddle.net/clickthelink/Uwcuz/1/