我使用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经验的人都有任何提示/建议吗?
答案 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端点。