backbone.js和跨域脚本

her*_*h42 20 jquery cross-domain 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/'
});
Run Code Online (Sandbox Code Playgroud)

Sto*_*ive 38

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

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

 Access-Control-Allow-Origin: http://mydomain.com
Run Code Online (Sandbox Code Playgroud)

您可能需要重写Backbone.sync才能在XMLHttpRequest对象上设置正确的设置.

如果您无权访问跨源服务器,则第二个选项是通过您自己的服务器(原始服务器或启用CORS的服务器)代理请求.显然,拥有你想要调用的域名的人可能不喜欢你这样做,但这是设计 - 如果他们不想让你调用你的服务,他们只有一个IP地址可以阻止,而不是你的每一个客户的IP.

  • 没问题!现在,如果这涵盖了所有内容,请将其标记为正确答案.谢谢 :) (3认同)