0

我尝试了 2 种类型的 ajax 调用来发布 json 数据,以便我可以使用 woocommerce API 订购商品。我正在使用 OAuth1.0a 来授权用户。它获取数据但无法发布数据。但他们都没有为我工作。所以请有人说如何使用ajax调用发布json数据。提前致谢。

var oauth2 = OAuth({
        consumer: {
            public: 'key',
            secret: 'secret'
        },
        signature_method: 'HMAC-SHA1'
    });

    var token = {
        public: 'key',
        secret: 'secret'
    };

    var dataToSend = {};

    var request_data = {
        url: 'http://www.example.com/wc-api/v3/orders',
        method: 'POST',
        data: dataToSend
    };

    return $.ajax({
        url: request_data.url,
        type: request_data.method,
        data: oauth2.authorize(request_data, token)
    });

    return $.ajax({
        url: request_data.url,
        type: request_data.method,
        'content-type': 'application/json',
        body: request_data.data,
        headers: oauth2.toHeader(oauth2.authorize(request_data, token))
    });

dataToSend - 示例数据

使用以下链接生成密钥: https ://docs.woothemes.com/document/woocommerce-rest-api/

4

1 回答 1

0

只需简单地查看 oauth2.authorize(request_data, token) 中的
所有标头,然后在“?”之后将所有这些标头添加到 url...这就是我的解决方案...


    var generatedoauth = oauth.authorize(request_data, token);
    console.log("oauth " + JSON.stringify(generatedoauth));


    var newUrl = '<Url Goes Here>';
    var paramsSt = '?oauth_consumer_key=' + generatedoauth.oauth_consumer_key + '&oauth_nonce=' + generatedoauth.oauth_nonce + '&oauth_signature_method=' + generatedoauth.oauth_signature_method + '&oauth_timestamp=' + generatedoauth.oauth_timestamp + '&oauth_signature=' + generatedoauth.oauth_signature;
    newUrl = newUrl + paramsSt;`
于 2016-04-04T06:42:57.443 回答