如何用jquery调用盒子apis

时间:2014-07-01 03:54:20

标签: jquery ajax api box

我正在尝试集成box api以列出我的文件和文件夹,我正在关注文件框http://developers.box.com/oauth/。我无法使用jquery样式。

任何人都可以使用jquery / ajax方式向我提示如何执行此操作。

欢迎所有评论。

谢谢,

2 个答案:

答案 0 :(得分:3)

您正在尝试将API集成到什么位置?如果您从网页的客户端发出请求,您将遇到同源政策,这是普通浏览器(Chrome,Firefox,...)的安全标准

那就是说,

  • API要么必须支持JSONP或CORS(应该在某处记录),你必须分别调整你的请求
  • 或触发您的服务器端的请求,这些请求不是JQuery / ajax,而是PHP(例如this example)或任何其他服务器脚本

答案 1 :(得分:1)

来自Javascript API-Requests的正式解决方案https://developers.blog.box.com/2011/09/28/using-the-box-api-with-javascript/

  

除非你很幸运能成为像我这样的Box开发者,否则你将在box.net(或其子域)以外的域名上托管你的应用程序。因此,Javascript同源策略将阻止我们从另一个域(如localhost,我们将在本教程中使用)向API发出Ajax请求。

在教程中有这个片段:

$.getJSON("http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20xml%20where%20url%20%3D%20'https%3A%2F%2Fwww.box.net%2Fapi%2F1.0%2Frest%3Faction%3Dget_ticket%26api_key%3D" + window.api_key + "'&format=json&diagnostics=true",
    function(response) {
        window.ticket = response.query.results.response.ticket;
        window.location.href = 'https://m.box.net/api/1.0/auth/' + ticket;
});

使其成为可用的Javascript API应该很容易:

function box_api_request(url, api_key, callback) {
    $.getJSON("http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20xml%20where%20url%20%3D%20'" + encodeURI(url) + "%26api_key%3D" + api_key + "'&format=json&diagnostics=true", callback);
}

box_api_request('https://www.box.net/api/1.0/rest?action=get_ticket', '1234MY_API_KEY123', function(response) {
    document.write(JSON.stringify(response));
});