我目前正在将 Stripe Connect 与 Ember.js 1.7.0-beta.4 应用程序(支持查询参数)集成。每Stripe documentation,我需要在我的Ember.js应用程序中从Stripe接收GET重定向,并使用查询参数来发出最终的POST请求。
到目前为止,我已经捕获了查询参数并尝试从同一个控制器进行AJAX POST,但是AJAX POST返回错误,因为显然Stripe的API不再支持CORS - despite a 2-year-old Stripe blog entry saying otherwise:
XMLHttpRequest无法加载https://connect.stripe.com/oauth/token。请求的资源上不存在“Access-Control-Allow-Origin”标头。因此,不允许原点访问。
当前的Stripe文档说使用JSONP,在同一篇博文中指出“因为JSONP只支持GET请求,但是我们的API使用了各种请求方法,我们必须实现HTTP方法覆盖支持_method查询参数。“
不幸的是,我不知道如何将JSONP方法集成到Ember.js应用程序中。
Stripe的文档告诉我“将此脚本标记添加到您的页面以开始使用Stripe.js。”
<script type="text/javascript" src="https://js.stripe.com/v2/"></script>
我是否只是将其逐字粘贴到Handlebars.js模板中?那么如何使用查询参数生成所需的POST请求?在哪里?
结论:如何在我的Ember.js应用程序中集成Stripe的JSON方法来启用Stripe Connect?
答案 0 :(得分:0)
我没有用条纹测试它,但我会将你的问题分成3个部分,尝试来回答每个部分。
1)脚本标签放在哪里?
脚本标签将放在标题
<script type="text/javascript" src="https://js.stripe.com/v2/"></script>
2)如何发出JSONP请求?
您可以使用$.getJSON
发出请求请求,只需确保包含?callback=?
包含:http://api.jquery.com/jquery.getjson/#jsonp
3)如何使用_method覆盖方法来执行GET请求 你会做类似
的事情$.getJSON('http://connect.stripe.com/whatever-the-correct-url-is?callback=?', {
_method: 'POST'
})
如果您提出了类似的请求,则服务器应将其作为POST进行处理
要将它们组合在一起,您应该像在步骤3中那样做,但也要添加条纹所需的其余参数。
答案 1 :(得分:0)
您可以在服务器端执行此操作,无需将其用于Ember。
工作流程是您使用客户端ID将用户重定向到条带服务器。它使用代码将用户重定向回服务器上的端点。您使用该代码调用条带以获取令牌。之后(或期间,如果您想要冷静和异步),您将用户重定向回适当的ember端点。对于这部分,条纹js文件根本不是必需的。