【问题标题】:How to access Recurly API with AJAX?如何使用 AJAX 访问 Recurly API?
【发布时间】:2014-10-08 23:52:33
【问题描述】:

我正在使用 jquery ajax 调用循环 API 端点,但我得到了跨域错误。据我了解,这是因为 Recurly 仅将结果作为 XML 返回......当我使用 JSONP 解决跨域错误时,我收到一个错误,因为它接收 XML 数据但需要 JSONP。很明显。 但我试图了解如何通过 AJAX 调用完全使用此 API。 我已经成功地能够使用 PHP 访问 API,但不幸的是,对于这个项目,我不能t 使用任何客户端代码。

即使我找到某种中间代码解决方案来获取 XML 并将其转换为 JSON 以供我方接受,我也需要利用 API 来处理 POST 请求(创建帐户、订阅等),所以我会想了解如何正确使用 API。

这是我的代码示例:

$.ajax({
  url: "http://[DOMAIN].recurly.com/v2/accounts",
  beforeSend: function(xhr) { 
    xhr.setRequestHeader("Authorization", "Basic " + window.btoa("[API KEY]")); 
  },
  crossDomain: true,
  type: "GET",
  accepts: "application/xml",
  dataType: "application/xml; charset=utf-8",
  success: function (data) {
    console.log("SUCCESS:", data);
  },
  error: function(e){
    console.log("ERROR:", e);
  }});

任何有 Recurly API 经验的人有任何提示/建议吗?

【问题讨论】:

    标签: javascript ajax json api recurly


    【解决方案1】:

    来自https://docs.recurly.com/api/recurlyjs/jsonp_endpoints

     $.ajax({
     dataType: 'jsonp',
     url: 'https://{subdomain}.recurly.com/jsonp/{subdomain}/plans/{plan_code}',
     data: {
    currency: 'USD',
     },
     success: function (data) {
     // do stuff
     },
    }
    

    【讨论】:

    • jsonp 适用于该特定页面上提供的端点,但在我的示例 (http://[DOMAIN].recurly.com/v2/accounts) 中用于端点时,我从Recurly API 文档 (docs.recurly.com/api/accounts),我只得到 XML 格式的结果。不过感谢您的帮助。但我承认我现在更加困惑,因为我确实读到它们只返回 XML 结果 (docs.recurly.com/api/basics/authentication)。
    【解决方案2】:

    您应该在浏览器中使用 V2 API。这样做有暴露您的私有 API 密钥的风险。如果有人拥有您的 API 密钥,他们可以拨打电话向客户收费、修改订阅,从而引发各种问题。

    查看 Byaxy 链接到的 JSONP 端点。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-02-23
      • 2013-01-26
      • 1970-01-01
      • 2017-11-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多