Ajax 使用主干从外部API检索JSON

Ajax 使用主干从外部API检索JSON,ajax,json,api,backbone.js,Ajax,Json,Api,Backbone.js,我是backbone.js的新手,我读过其他类似问题的解决方案,但仍然无法让我的示例发挥作用。我有一个基本的rails api,它从下面的url返回一些JSON,我试图通过backbone.js前端访问它。因为它们是一个不同的服务器,我想我需要使用一个“jsonp”请求。我目前正在通过覆盖主干集合中的sync函数来实现这一点 Api url: 为了测试这一点,我在chrome控制台中创建了一个新的“plans”集合,使用“plans=new plans()”然后使用“plans.fetch()

我是backbone.js的新手,我读过其他类似问题的解决方案,但仍然无法让我的示例发挥作用。我有一个基本的rails api,它从下面的url返回一些JSON,我试图通过backbone.js前端访问它。因为它们是一个不同的服务器,我想我需要使用一个“jsonp”请求。我目前正在通过覆盖主干集合中的sync函数来实现这一点

Api url:

为了测试这一点,我在chrome控制台中创建了一个新的“plans”集合,使用“plans=new plans()”然后使用“plans.fetch()”尝试获取JSON

之后调用plans.models时,仍然有一个空数组,从plans.fetch()返回的对象似乎没有包含任何json数据


知道我哪里出错了吗

您也尝试过重写fetch方法吗?

我以前也遇到过同样的问题。您不必重写同步方法

取自

JSONP技术使用完全不同的机制向服务器发出HTTP请求并对响应进行操作。它需要客户端页面和服务器上的协作代码。服务器必须有一个响应HTTP“GET”的URL“将JSON块包装在函数调用中的请求。因此,您不能只对任何旧服务器执行JSONP事务;它必须是明确提供该功能的服务器。”


您确定您的服务器符合上述要求吗?使用另一个兼容的jsonp服务(Twitter)进行测试要查看是否收到结果?

您应该在api url中添加
?callback=?
,以便启用jsonp

'opitons.url'应该是'options.url'已修复。但仍然存在相同的问题不,现在还没有。我将研究它。谢谢,这是我的问题。我有一个基本的rails api,只是返回JSON。不是函数调用。
sync: function(method, model, options) {
    options.timeout = 10000;
    options.dataType = 'jsonp';
    options.url = 'http://guarded-wave-4073.herokuapp.com/api/v1/plans.json'
    return Backbone.sync(method, model, options);
}