0

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

谁能给我一个关于如何使用 jquery/ajax 方式做到这一点的提示。

欢迎所有评论。

谢谢,

4

2 回答 2

3

您想将 API 集成到什么中?如果您从网页的客户端发出请求,您将遇到同源策略,这是常见浏览器(Chrome、Firefox 等)的安全标准。

也就是说,

  • API要么必须支持JSONP或CORS(应该记录在某处),你必须分别调整你的请求
  • 或从您的服务器端触发请求,这不是 JQuery/ajax,而是 PHP(例如这个示例)或任何其他服务器脚本
于 2014-07-03T12:58:44.127 回答
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));
});
于 2014-07-04T07:22:27.507 回答