我尝试在joc(客户端)中使用其API在Woocommerce中创建新产品?
端点:
https://localhost/wpShop/wc-api/v2/products?consumer_key=ck_1111111111122123&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1458225139&oauth_nonce=nVq4rX&consumer_secret=cs_232332322233232&oauth_signature=kzoVx+VYSWlLbRpi3f8222222=
使用GET
我从Woocommerce获得所有产品!完善!
但是,为什么我不能创造新产品呢?
我的新产品:
var data = {
product: {
title: 'Premium Quality',
type: 'simple',
regular_price: '21.99',
description: 'Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.',
short_description: 'Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.',
categories: [
9,
14
],
images: [
{
src: 'http://www.adpic.de/data/picture/detail/Wasserflasche_74756.jpg',
position: 0
},
{
src: 'http://www.adpic.de/data/picture/detail/Wasserflasche_74756.jpg',
position: 1
}
]
}
};
我的ajax POST
请求:
$.ajax({
method: "POST",
url: woocommerceURLcreateProduct,
data: $.param(data)
})
.done(function( msg ) {
console.log( "Data Saved: " );
console.log( msg );
});
我收到了错误:
{code: "woocommerce_api_missing_callback_param", message: "Missing Parameter data"}
来源:
http://woothemes.github.io/woocommerce-rest-api-docs/v2.html?javascript#create-a-product
答案 0 :(得分:1)
根据jQuery Docs,jQuery.param(...)
获取您的对象并将其序列化为字符串,通常用于通过GET
传输数据。
根据WooCommerce Docs,您的请求应作为JSON字符串发送。
将data: $.param(data)
替换为data: data
,jQuery的ajax允许您将对象作为数据传递,并且它将完成将其字符串化为端点的JSON字符串的所有艰苦工作。
不要忘记在ajax调用中将dataType设置为json
,因此jQuery可以解析WooCommerce的JSON响应。