在Ember.js应用中使用JSONP实现Stripe Connect
Implementing Stripe Connect using JSONP in an Ember.js app
我目前正在集成Stripe Connect与Ember.js 1.7.0-beta。4应用程序(支持查询参数)。根据Stripe文档,我需要在Ember.js应用程序中接收来自Stripe的GET重定向,并使用查询参数进行最后的POST请求。
到目前为止,我已经捕获了查询参数,并试图从同一个控制器进行AJAX POST,但是AJAX POST返回一个错误,因为显然Stripe的API不再支持CORS -尽管一个2岁的Stripe博客条目另有说明:XMLHttpRequest无法加载https://connect.stripe.com/oauth/token。请求的资源上没有'Access-Control-Allow-Origin'标头。因此不允许访问Origin。
当前的Stripe文档说使用JSONP,在同一篇博客文章中注意到"因为JSONP只支持GET请求,但我们的API使用各种请求方法,我们必须用_method查询参数实现HTTP方法覆盖支持。"
不幸的是,我不知道如何将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 ?
我还没有测试过,但我会把你的问题分成3部分,试着回答每一部分。
1)在哪里放脚本标签?
script标签会出现在header
<script type="text/javascript" src="https://js.stripe.com/v2/"></script>
2)如何发出JSONP请求?
您将使用$.getJSON
发出常规请求,您需要做的就是确保包含?callback=?
(参见:http://api.jquery.com/jquery.getjson/#jsonp
3)如何使用_method来重写方法。
你可以这样写
$.getJSON('http://connect.stripe.com/whatever-the-correct-url-is?callback=?', {
_method: 'POST'
})
如果您发出这样的请求,服务器应该将其作为POST处理
要将它们连接在一起,您应该需要做类似于步骤3的事情,但还要添加stripe所需的其余参数。
你可以在服务器端完成这一切,不需要在Ember中工作。
的工作流程是你重定向用户到条带服务器与您的客户端id。它用代码将用户重定向到服务器上的端点。您使用该代码呼叫stripe以获得令牌。在此之后(或者在此期间,如果您想要酷和异步),您将用户重定向到适当的ember端点。这部分根本不需要Stripe js文件。
https://stripe.com/docs/connect/oauth的令牌请求
- 如何使用动画实现纸张推车
- 客户端服务器REST API captcha实现
- 如何实现此布局
- JSONP请求返回结果,但也触发error_callback
- 在localhost Dev Box上测试JSONP请求的最佳方式
- 正在传递JSONP标头's数据参数到另一个文件中的AJAX请求
- Meteor忘记了密码的实现
- 使用Native Sockets在Android中实现WebSockets
- 在样板文件中实现Ajax
- instanceof是如何在JavaScript中实现的
- 如何正确实现Jquery多选小部件
- 实现一个建立在google.com之上的自定义搜索引擎
- 多个组件是如何实现的
- window.location使用jquery mobile实现chrome跳转
- 如何在OpenERP中实现网络摄像头
- Node.js使用Series函数(模式?)实现流控制时出现意外结果
- javascript加密实现,包括可信否认
- 如何使用jquery ajax和jsonp在您自己的域上读取json数据
- 实现比较方法的最佳实践是什么;s的比较类型是在运行时选择的
- 在Ember.js应用中使用JSONP实现Stripe Connect