0

我一直在努力学习 Ember,我有一个问题。

在我的商店中,我从 .json 获取数据,如下所示。我试过没有 buildUrl 函数但无法加载 json 文件,然后在 SO 上找到了这个解决方案。

CocktailApp.Store = DS.Store.extend({
revision: 12,
adapter: DS.RESTAdapter.extend({
    bulkCommit: false, 
    url: "http://localhost:8888",    
    buildURL: function(record, suffix) {
        var s = this._super(record, suffix);
        return s + ".json";
    }

})
});

现在是我的问题:当我提交机会时(通过按添加到收藏夹或从收藏夹中删除)RESTAdapter 在 PUT 请求的末尾添加“.json”。请参阅下面的代码和屏幕截图

CocktailApp.CocktailController = Ember.ObjectController.extend({
addToFav: function () {
this.set('fav',true);
this.get('store').commit();
},
removeFromFav: function () {
this.set('fav',false);
this.get('store').commit();
} 
});

在此处输入图像描述

我认为这就是为什么我的 PUT 请求无法处理的原因。但是,如果我删除了 builtURL 函数,则根本没有加载任何 json。我该如何解决这个问题?谢谢

4

1 回答 1

0

如果 API 端点 url 在其末尾不需要.json,则从您的buildURL函数中删除该行。我的猜测是,您得到的示例代码正在使用 ruby​​ on rails api 或类似的东西。

请记住,当您向 url 发送 GET、PUT、POST 或 DELETE 时,该 url 实际上需要是一个真正的端点。你不能只是向它添加无关的东西并让它仍然工作。

于 2013-08-16T14:46:38.563 回答