如何使用AJAX访问Recurly API?

时间:2014-10-08 23:52:33

标签: javascript ajax json api recurly

我使用jquery ajax调用重复的API端点,但是我得到了跨源错误。根据我的理解,这是因为Recurly仅将结果作为XML返回...当我使用JSONP来解决跨源错误时,我收到错误,因为它接收XML数据但期望JSONP。很明显。 但我试图了解如何通过AJAX调用完全使用此API。我已经成功地使用PHP访问API,但不幸的是,对于这个项目,我无法使用任何客户端代码。

即使我找到某种中间代码解决方案来获取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经验的人都有任何提示/建议吗?

2 个答案:

答案 0 :(得分: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
 },
}

答案 1 :(得分:0)

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

查看Byaxy链接到的JSONP端点。