【问题标题】:Why i cannot pass data URL through ajax to wordpress function为什么我不能通过 ajax 将数据 URL 传递给 wordpress 函数
【发布时间】:2021-10-13 10:33:49
【问题描述】:

我正在 WP 管理面板上生成图像并将其保存到媒体库。几个月前我工作得很好。但是现在如果我通过 ajax 发送 dataurl,我很长一段时间都没有收到来自服务器的任何答案,并且之后得到 400 错误或 404。当我从 ajax 调用中删除数据 url 值并尝试放置字符串或数组时,它可以正常工作。

这是我的 ajax:

var ajaxurl = '<?php echo admin_url('admin-ajax.php'); ?>';
var dataURL  = canvas.toDataURL();

var data = {
   'action'   : 'save_certificate',
   'dataURL'  : dataURL
};

jQuery.post(ajaxurl, data).done(function( response ) {
   console.log(response); 
}).fail(function(xhr, status, error) {
   console.log(xhr);
   console.log(status);
   console.log(error);
}).catch(function(xhr, status, error) {
   console.log(xhr);
   console.log(status);
   console.log(error);
});

和wp函数

 add_action( 'wp_ajax_save_certificate', 'save_certificate' ); 

function save_certificate(){        
    print('ok');
    wp_die();
}

wp 配置上的帖子最大大小设置为 128MB 更新 我有,我可以发送小于 2 MB 的画布或小于该值的数组,但为什么我不能发送更大的文件?

【问题讨论】:

标签: javascript ajax wordpress


【解决方案1】:

jQuery 代码:

jQuery(".add_to_queue").click(function(){

var product_id = jQuery('input[name="product_id"]').val();
var variation_id = jQuery('input[name="variation_id"]').val();


var ajaxurl = "<?php echo admin_url('admin-ajax.php'); ?>";
jQuery.ajax({
type: 'POST',
url: ajaxurl, 
data: {"action": "post_word_count", "productid":product_id, "variationid":variation_id},

success: function(response){
console.log(response);

}


});

});

WordPress 钩子:

function post_word_count(){
  echo "<pre>";
  print_r($_POST['productid']);
  exit();
}

add_action('wp_ajax_post_word_count', 'post_word_count'); 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-19
    • 1970-01-01
    相关资源
    最近更新 更多