【发布时间】:2014-03-29 16:43:07
【问题描述】:
这是我面临的问题。
我正在域 A 上使用 Laravel 4 构建我的 rest api。
该 api 将为我在域 B 上的应用提供 JSON。
为了避免跨域政策问题,我做了两件事:
- 客户端 - 我在域 B 上下载了一个 PHP 代理脚本 - 并使用它向域 A 上的我的 api 发送 GET、POST 请求。
我使用了位于 github 上的脚本。
- 服务端,我已启用 Laravel 接受 CORS。
一切都很好,一切都在“有点”工作。
前端由 Backbone 控制,这让我找到了问题的根源。
查看代理的文档,这里是它应该如何与 jQuery 一起使用:
$('#target').load('http://www.yourdomain.com/proxy.php', {
csurl: 'http://www.cross-domain.com/',
param1: value1,
param2: value2
});
基本上,我发送一个 csurl 与我的 REST Api 域的值 - domainA
其他参数(param1 和 param2)用于向 api 发送不同的东西,如 csrf 令牌等。
回到 Backbone,我似乎无法让 Backbone 模型正常工作,而且我不确定如何处理发送参数。
这是主干模型:
var MyModel = Backbone.Model.extend({
url: 'http://domainB.dev/proxy.php'
});
在我看来,我实例化它并尝试传递参数:
var myModel = new MyModel();
myModel.save({
data: {
csurl: 'http://domainA.dev'
param1: 'mytoken'
}
}, {
success: function() {},
error: function() {}
});
数据没有到达我的 api - 我在帖子中找到它,帖子确实有效 - 但我没有收到成功回调。
基本上,我不知道如何将代理的文档实现到 Backbone。
有什么想法吗?
【问题讨论】:
标签: javascript php jquery ajax backbone.js