Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在WordPress中使用ajax发送大的POST数据?_Wordpress_Jquery_Post_Get - Fatal编程技术网

如何在WordPress中使用ajax发送大的POST数据?

如何在WordPress中使用ajax发送大的POST数据?,wordpress,jquery,post,get,Wordpress,Jquery,Post,Get,使用下面的函数时,我遇到以下错误: 加载资源失败:服务器响应状态为414(请求URI太大) 当数据不太长时,函数可以正常工作,问题是,在某些情况下,rez和com变得很长,ajax似乎使用get,而不是POST。 有人能向我解释为什么在我声明POST时ajax使用GET吗?我该如何防止这种情况?多谢各位 jQuery('#buton_submit').click(function() { var rez = {}; var com = {}; jQuery("input[

使用下面的函数时,我遇到以下错误:

加载资源失败:服务器响应状态为414(请求URI太大)

当数据不太长时,函数可以正常工作,问题是,在某些情况下,rez和com变得很长,ajax似乎使用get,而不是POST。 有人能向我解释为什么在我声明POST时ajax使用GET吗?我该如何防止这种情况?多谢各位

jQuery('#buton_submit').click(function() {
    var rez = {};
    var com = {};
    jQuery("input[name^='sb-rez']:checked").each(function() {
        rez[jQuery(this).attr('name').substr(7)] = jQuery(this).val();
    });
    jQuery("textarea[name^='sb-com']").each(function() {
        if (jQuery(this).val().length > 0) {
            com[jQuery(this).attr('name').substr(7)] = jQuery(this).val();
        }
    });
    jQuery.ajax({
        url: '/wp-admin/admin-ajax.php',
        data:{
            'action':'admin_event',
            'fn':'saveResultsEvent',
            'method': 'POST',
            'contentType': 'application/x-www-form-urlencoded;charset=UTF-8',
            'processData': false,
            'r': rez,
            'c': com,
            'pid': jQuery('div[id="content"] :first-child').attr('id').substr(5)
        },
    success: function(data){
        jQuery('#arata_mesaje').html(data);
        jQuery('#arata_mesaje').show('fast');
        jQuery('#arata_mesaje').delay(3000).hide(1000);
        },
    error: function(errorThrown){
        alert('Error printed in console.');
        console.log(errorThrown); 
        }
    });
});
正确。ajax呼叫,供将来参考(尝试将其作为答案发布,但由于缺乏声誉,我在接下来的8小时内无法回答自己的问题):


问题是我在数据数组中错误地声明了类型/方法和contentType,而不是作为ajax调用的参数,默认情况下,方法是GET。

您输入了一个错误-查看
jQuery.ajax()
的文档,您将看到您定义了与
type
键一起使用的方法,而不是
方法
。因此,您的请求应该如下所示:

jQuery.ajax({
    url: '/wp-admin/admin-ajax.php',
    data:{
        'action':'admin_event',
        'fn':'saveResultsEvent',
        'type': 'POST',
        'contentType': 'application/x-www-form-urlencoded;charset=UTF-8',
        'processData': false,
        'r': rez,
        'c': com,
        'pid': jQuery('div[id="content"] :first-child').attr('id').substr(5)
    },
    success: function(data){
        jQuery('#arata_mesaje').html(data);
        jQuery('#arata_mesaje').show('fast');
        jQuery('#arata_mesaje').delay(3000).hide(1000);
    },
    error: function(errorThrown){
        alert('Error printed in console.');
        console.log(errorThrown); 
    }
});

你有一部分是对的。我不记得我从哪里得到这个例子,但我没有质疑它,因为它是有效的。我需要在数据外部(而不是其中)声明类型、contentType和processData。谢谢你的快速回复。很有帮助。你能发布你最后的
.ajax
调用吗?如果其他人遇到同样的问题,你能接受它作为正确的答案吗?谢谢。我稍后发布为编辑。试图将其作为评论发布,但太长。我需要做其他事情吗?哦,既然你不能马上回答,那就在那8个小时后回答吧(如果你记得这么做的话:),然后接受它:)
jQuery.ajax({
    url: '/wp-admin/admin-ajax.php',
    data:{
        'action':'admin_event',
        'fn':'saveResultsEvent',
        'type': 'POST',
        'contentType': 'application/x-www-form-urlencoded;charset=UTF-8',
        'processData': false,
        'r': rez,
        'c': com,
        'pid': jQuery('div[id="content"] :first-child').attr('id').substr(5)
    },
    success: function(data){
        jQuery('#arata_mesaje').html(data);
        jQuery('#arata_mesaje').show('fast');
        jQuery('#arata_mesaje').delay(3000).hide(1000);
    },
    error: function(errorThrown){
        alert('Error printed in console.');
        console.log(errorThrown); 
    }
});