Ember Data + JSONAPI-错误:适配器由于无效而拒绝了提交

Chr*_*ers 5 ember.js ember-data json-api

我正在尝试通过POST对Ember Data 2.10的基于JSONAPI的API 的请求提交无效数据。

API用422代码和响应中的此有效负载正确响应(请注意,这些是错误对象,不是“正常” JSONAPI有效负载响应):

{
  "errors": [{
    "title": "Title can't be blank",
    "id": "title",
    "code": "100",
    "source": {
      "pointer": "/data/attributes/title"
    },
    "status": "422"
  }, {
    "title": "Layout can't be blank",
    "id": "layout",
    "code": "100",
    "source": {
      "pointer": "/data/relationships/layout"
    },
    "status": "422"
  }, {
    "title": "Page type can't be blank",
    "id": "page-type",
    "code": "100",
    "source": {
      "pointer": "/data/attributes/page-type"
    },
    "status": "422"
  }]
}
Run Code Online (Sandbox Code Playgroud)

该错误似乎大部分都可以加载到模型中,但是我在控制台中收到此错误:

ember.debug.js:19160 Error: The adapter rejected the commit because it was invalid
  at ErrorClass.EmberError (ember.debug.js:19083)
  at ErrorClass.AdapterError (errors.js:23)
  at ErrorClass (errors.js:49)
  at Class.handleResponse (rest.js:821)
  at Class.handleResponse (data-adapter-mixin.js:100)
  at Class.superWrapper [as handleResponse] (ember.debug.js:24805)
  at ajaxError (rest.js:1342)
  at Class.hash.error (rest.js:916)
  at fire (jquery.js:3305)
  at Object.fireWith [as rejectWith] (jquery.js:3435)
Run Code Online (Sandbox Code Playgroud)

是什么导致此错误?服务器返回的JSON有效负载中有问题吗?最近发生的一件改变是引入了一个指向/data/relationships/layout; Ember Data对此感到窒息吗?

我可能还会注意到,通过PATCH请求提交类似的错误数据不会在控制台中触发此错误。

主要问题是,这导致验收测试失败,而我似乎找不到解决方法。能够在应用程序中测试此行为会很好,但是我只需要暂时将其注释掉即可。

在更新到2.10之前,我还在Ember Data 2.7上进行了尝试,以查看是否可以解决该问题。两种版本都出现相同的错误。

rin*_*mon -1

由于您的应用程序使用默认适配器,因此请确保JSON:API遵循构建响应的约定

这里提供了一些指南

  • 你的回答没有帮助。我在问题中发布了有效负载。它具体有什么问题呢? (2认同)