POST Ajax bad request

时间:2018-04-14 作者:wscourge

我正在尝试AJAX post请求,但没有结果。我已经在这里尝试了很多答案,包括本地化管理ajax脚本、向数据字段添加操作、提供标题、提供priv和no\\u priv挂钩。

我很肯定,这是一个愚蠢的小错误,但它需要的时间远远超过了它应该已经。我感谢你的帮助。

我的javascript:

var variation = { name: \'personal\', id: \'467\' };
var options   = {
    url : WC_VARIATION_ADD_TO_CART.ajax_url,
    method: "POST",
    contentType: \'application/json\', // tried without it too
    dataType: \'json\', // tried without it too
    data: {
        "action"        : "woocommerce_add_variation_to_cart",
        "product_id"    : "466",
        "quantity"      : 1,
        "variation_name": variation.name,
        "variation_id"  : variation.id,
    },
}

options.data = JSON.stringify(options.data);

$.ajax(options).done(function(success) {

    console.log(success);

}).fail(function(err) {
    console.log(arguments);
});
我的functions.php

wp_register_script( 
    \'fluent-js\', 
    get_template_directory_uri() . \'/assets/js/fluent-kit.full.min.js\', 
    array(), 
    null, 
    true
);
wp_enqueue_script( \'fluent-js\');
$vars = array( \'ajax_url\' => admin_url( \'admin-ajax.php\' ) );
wp_localize_script( \'fluent-js\', \'WC_VARIATION_ADD_TO_CART\', $vars );

function woocommerce_add_variation_to_cart() {

    echo json_encode(array("msg" => "Good"));
    die();

}

add_action( \'wp_ajax_nopriv_woocommerce_add_variation_to_cart\', \'woocommerce_add_variation_to_cart\' );
add_action( \'wp_ajax_woocommerce_add_variation_to_cart\', \'woocommerce_add_variation_to_cart\' );
我的开发工具/网络选项卡:

enter image description here

1 个回复
最合适的回答,由SO网友:Swen 整理而成

我测试了您的代码,并通过删除以下行使其正常工作,因为这是不必要的。

options.data = JSON.stringify(options.data);

您还可以安全地删除AJAX调用中的以下行。

contentType: \'application/json\', // tried without it too
dataType: \'json\', // tried without it too
请退房AJAX in Plugins 有关更多信息,请参阅WordPress Codex。

结束