如何将数据传递给 Oboe.js

How to pass data to Oboe.js

Originally asked by Sashkan on the Oboe.js Github issues:

'data' 是否由 oboe.js 处理?

我一直在使用双簧管来传输来自 API 的响应。对于不需要参数的所有调用,一切都很好,但我如何处理依赖于参数的调用?

// basic ajax request for my call is
$.ajax({
    dataType: "json",
    url: url,
    data: data,
    success: success
});

// 'data' is my parameters list, as a json string. How can I pass it to oboe ?
oboe(url)
    .done(function(things) {
        alert('success');
        console.log(things);
    })
    .fail(function(test) {
        alert( "ERROR:  " + test );
        console.log(test);
    });

Answer provided by JuanCaicedo

您可以将配置对象传递到双簧管函数中,将您的数据作为请求正文传递(您可能必须根据 API 期望的方式对其进行格式化)。您可以在 http://oboejs.com/api.

中找到更多详细信息

正确答案是:

oboe({
    'url': url,
    'method': 'POST',   //optional
    'body': data    //no need to encode, the library will JSON stringify it automatically
}).on('done',function(things){
    //do something with things
});

如果有人正在寻找 RESTful 方法来使用可缓存的 GET 请求来执行此操作,只需将查询参数添加到 URI,如下所示:

var query = $.param(data);

oboe(url+"?"+query)
.done(function(things) {
    alert('success');
    console.log(things);
})
.fail(function(test) {
    alert( "ERROR:  " + test );
    console.log(test);
});

注意我用的是JQuery