backbone.js和跨域脚本



我想使用backbone.js和jquery。该应用程序应该在手机上离线运行(即"localhost"),在互联网上的服务器端后端很少有调用。

使用backbone.js实现跨域请求的最佳方式是什么?

我想使用JSON,但如果有必要,我最终可以切换回REST。

这是我迄今为止不太令人印象深刻的代码:

App.Collections.Events = Backbone.Collection.extend({
   model: Event,    
   url: 'http://mydomain.com/api/getevents/user_id/1/'
});

有两种方法可以允许跨域XMLHttpRequest,这是Backbone.js从URL获取数据的方法。如果您已经控制了要连接的非源域的服务器端,并且涉及到实现跨源资源共享(或CORS),则第一种方法是合适的。

要实现CORS,请在Access-Control-Allow-Origin响应标头中为要服务的域返回HTTP Referer请求标头(path开头的位;它应该与正则表达式^.+?/{2}[^/]*匹配)的"Origin"部分:

 Access-Control-Allow-Origin: http://mydomain.com

您可能需要覆盖Backbone.sync,以便在XMLHttpRequest对象上设置正确的设置。

第二种选择是,如果您无法访问跨源服务器,则可以通过您自己的服务器(源服务器或启用CORS的服务器)代理请求。显然,你试图呼叫的域名的所有者可能不喜欢你这样做,但这是故意的——如果他们不想让你呼叫你的服务,他们只有一个IP地址可以阻止,而不是你每个客户的IP。

相关内容

  • 没有找到相关文章

最新更新