我正在尝试在“添加到购物车”按钮上的woocommerce单一产品页面上使ajax正常工作,并且似乎是第一个障碍。
我的代码如下:
(function ($) {
$(document).on('click', '.single_add_to_cart_button', function (e) {
e.preventDefault();
var str = "yadda yadda yadda";
$.ajax({
type: "post",
// url: 'http://localhost/all_projects/wordpress/mapchest_w4/wp-admin/admin-ajax.php', // - same problem
url: wc_add_to_cart_params.ajax_url,
data: str,
contentType: "application/x-www-form-urlencoded; charset=UTF-8",
dataType: "text",
success: function (msg) {
//do something
console.log("success");
console.log(msg);
},
error: function (errormessage) {
//do something else
console.log("error");
console.log(errormessage);
}
});
return false;
});
})(jQuery);
脚本排队如下:
wp_enqueue_script( 'ajax-add-to-cart', get_template_directory_uri() . '/assets/js/ajax-add-to-cart.js', array(), null, 'all');
以上内容返回: jquery.min.js:2 POST http://localhost/all_projects/wordpress/mapchest_w4/wp-admin/admin-ajax.php 400(错误请求)
和: {readyState:4,setRequestHeader:ƒ,getAllResponseHeaders:ƒ,getResponseHeader:ƒ,overrideMimeType:ƒ,...}
有趣的是,如果我将URL更改为其他名称,例如产品的硬编码URL,我会收到一条成功消息,因此问题出在: wc_add_to_cart_params.ajax_url
有什么显而易见的东西吗?