Ember.js 余烬数据错误:适配器';s的回答没有任何数据

Ember.js 余烬数据错误:适配器';s的回答没有任何数据,ember.js,adapter,store,Ember.js,Adapter,Store,我刚刚将一个应用程序从Ember 1.13升级到Ember 2.12。现在,我加载数据存储的尝试失败了。这一行: return this.store.find('blog', 14); 生成此错误:“处理路由时出错:blogs.index断言失败:您对id为14的blog发出了findRecord请求,但适配器的响应没有任何数据” 但数据正在以这种格式到达: { “博客”:{ “id”:14, “人员id”:“1”, “访问”:“3” } } 我的适配器在application/adapter

我刚刚将一个应用程序从Ember 1.13升级到Ember 2.12。现在,我加载数据存储的尝试失败了。这一行:

return this.store.find('blog', 14);
生成此错误:“处理路由时出错:blogs.index断言失败:您对id为14的blog发出了
findRecord
请求,但适配器的响应没有任何数据”

但数据正在以这种格式到达:

{ “博客”:{ “id”:14, “人员id”:“1”, “访问”:“3” } }

我的适配器在application/adapter.js中指定为:

导出默认DS.RESTAdapter.extend({

主持人:“, 名称空间:“api rick”

}))

有人知道我为什么会犯这个错误吗?我认为JSON格式正确——在升级Ember之前没有任何问题

稍后编辑,以下是相关代码:

//application/adapter.js
import DS from 'ember-data';
import Ember from 'ember';
export default DS.RESTAdapter.extend({

  host: "http://localhost",
  namespace: 'api-rick',

  pathForType: function(type) {
    //this so types (db table names) are singular;
    //else are pluralized in Adapter's request
    return Ember.String.singularize(type);
  }
});

//application/serializer.js
port DS from 'ember-data';

export default DS.RESTSerializer.extend({
});

//pods/contact/model.js
import DS from 'ember-data';

export default DS.Model.extend({
  name         : DS.attr(),
});

//pods/contact/route.js
import Ember from 'ember';

export default Ember.Route.extend({
  model: function() {
    return this.store.findAll('contact');
  },
});
//在Chrome的开发者工具中查看时返回的负载(联系人表只有一条记录):

最后,以下是Chrome控制台中报告的错误:

Transition #0: contact: calling beforeModel hook
ember.debug.js:55891 
Transition #0: contact: calling deserialize hook
ember.debug.js:28573 
Error while processing route: contact Assertion Failed: You made a `findAll` request for contact records, but the adapter's response did not have any data Error
    at assert (http://localhost:4200/assets/vendor.js:20732:13)
    at Object.assert (http://localhost:4200/assets/vendor.js:32400:34)
    at assert (http://localhost:4200/assets/vendor.js:85626:37)
    at http://localhost:4200/assets/vendor.js:97389:41
    at tryCatch (http://localhost:4200/assets/vendor.js:73561:14)
    at invokeCallback (http://localhost:4200/assets/vendor.js:73576:15)
    at publish (http://localhost:4200/assets/vendor.js:73544:9)
    at http://localhost:4200/assets/vendor.js:53448:16
    at invokeWithOnError (http://localhost:4200/assets/vendor.js:15377:16)
    at Queue.flush (http://localhost:4200/assets/vendor.js:15436:9)

如果您的后端使用下划线响应,则需要以下代码

import DS from 'ember-data';

export default DS.RESTSerializer.extend({
  keyForAttribute: function(attr, method) {
    return Ember.String.underscore(attr);
  }
});

你的序列化程序怎么样,它正在扩展吗<代码>查找现在是私有方法。考虑使用FordRealth-Excel,因为REST适配器是余烬1.13中的默认适配器,所以我没有指定序列化程序。所以我创建了一个:从“余烬数据”导入DS;导出默认的DS.RESTSerializer.extend({});添加序列化程序不会影响错误,将store.find()更改为store.findRecord()也不会影响错误。我对此属性
person\u id
有疑问,您是如何在模型文件中定义它的?。我知道JSON响应服务器应该像
个人id
一样返回,但我不确定RESTGood的要点。我的模型使用下划线。我会进一步调查的。也许我需要一个转变?我已经添加了,但没有运气。似乎序列化程序没有被调用(我在其中设置了一个断点,但从未被触发)。我发现的另一件事是,Ember Inspector数据面板显示“博客”有一条记录,ID为14,但所有其他属性都为“未定义”。是否有特定于模型的序列化程序?没有。只有应用程序序列化程序。可能包括所有相关的代码,这些代码可能会给出一些提示,如适配器、序列化程序、模型、路由文件,因此问题与CORS有关。我以前设置过xdomain,但由于一些原因,我没有调查一些变化,在我离开一年后回到这个项目时,它不再起作用@kumkanillam,谢谢你的支持,非常感谢。余烬当然有时会令人沮丧!
import DS from 'ember-data';

export default DS.RESTSerializer.extend({
  keyForAttribute: function(attr, method) {
    return Ember.String.underscore(attr);
  }
});