小编典典

JSONP和Backbone.js

json

我想将Backbone.js与我控制的REST API结合使用。我希望REST
API和Backbone脚本位于不同的域中,但不幸的是,这是一个跨域请求,因此将被阻止。

Backbone.js是否具有内置功能来支持JSONP请求?或者,或者,有人对将JSONP支持手动添加到Backbone.js
sync系统有任何经验吗?


阅读 228

收藏
2020-07-27

共1个答案

小编典典

您将无法将整个REST
API与JSONP一起使用。您只能使用JSONP调用GET请求(通过<script>在当前文档上写入新标签,然后调用javascript回调…来工作)。

要使用所有HTTP动词(POST,DELETE,PUT),可以使用CORS协议:http : //www.w3.org/TR/access-control/。

CORS是浏览器和网络服务之间协商的协议,它告诉浏览器执行跨域调用的Java代码是“确定”

要使用此功能,您只需要在服务器响应中包括一些自定义标头即可,该标头告诉浏览器可以接受跨域请求。这是一篇博客文章,解释了如何使用RubyOnRails实现它(但它应该与其他框架非常相似…):http
://www.tsheffler.com/blog/?p=428

这是最简单的解决方案,您可以像在同一个域中一样使用lobb.js,它可以与大多数当前的浏览器(Internet Explorer 8 +,Firefox
3.5 +,Safari 4+和Chrome)一起使用!

如果您需要较旧的浏览器支持,则可以使用easyXDM来使骨干网正常工作:

easyXDM是一个Javascript库,使您作为开发人员可以轻松解决Same Origin
Policy设置的限制,从而使跨域边界的JavaScript API的通信和公开变得容易。

它稍微复杂一点,并且可以与一些众所周知的iframe
hack(有时在javascript控件(例如GMaps,facebook控件…)中使用)一起使用。

希望对您有所帮助!

2020-07-27