我需要实现vuejs来加载我的商店的类别。我已经读到woocoomerce rest api需要身份验证请求才能工作,所以我尝试在启用https的localhost上使用oauth获取类别:
// This is in my functions file to pass the parameters
// wp_localize_script( \'main\', \'woo\',
// array(
// \'ajaxurl\' => \'wp-ajax.php\',
// \'timestamp\' => time(),
// \'hash\' => hash_hmac(),
// \'nonce\'
// )
// );
阿贾克斯// This is the JS part
//$.ajax({
//method: \'GET\',
//url: \'wp-json/wc/v3/products/categories&oauth_consumer_key="+woo.consumer_key+"&oauth_signature_method="HMAC-SHA1&oauth_timestamp="+woo.timestamp+"&oauth_nonce="+woo.nonce+"&oauth_signature=+woo.hash\',
// beforeSend: function (xhr) {
// xhr.setRequestHeader ("Authorization", "OAuth " + btoa(username + ":" + password));
// },
我总是得到401响应代码,我无法使用ajax进行身份验证。我想使用wp\\u localize\\u脚本来传递所需的时间戳和身份验证,但我无法找到正确的方法。任何示例都将不胜感激。更新时间:
我使用sally建议重写了che代码,但仍然得到了401错误响应代码。以下是更新的代码
PHP
wp_register_script(\'main\', get_template_directory_uri().\'/assets/js/main.js\', array(\'jquery\'), null );
$localize = array(
\'ajaxurl\' => admin_url(\'admin-ajax.php\'),
// Securing your WordPress plugin AJAX calls using nonces
\'auth\' => base64_encode(\'ck_32a46b36d90680e574e9de6456746a11cf07945:cs_0a6bd199a45c0b96e848a1401a14b18444fa46d8\'),
);
wp_localize_script(\'main\', \'wp\', $localize);
wp_enqueue_script(\'main\');
JS公司 const app = new Vue({
el: \'#app\',
data: {},
created: function(){
$.ajax({
method: \'GET\',
url: \'wp-json/wc/v3/products/categories\',
headers: {
\'Authorization\': "Basic "+ wp.auth
},
success: function(response){
console.log(response);
}
});
},
destroyed: {},
mounted: {},
});
我在本地主机上,有一个自我签名的证书,可以使用https,也许这就是问题所在?