首页 > 解决方案 > ember保存调用不会成功块

问题描述

我在模型上使用 ember save 调用来持久化并调用我的 REST 调用。

_model.save().then(() =>{
   console.log("success");
 }, (error) {
    console.log("error");
 });

我的 REST api 返回 202 响应(如网络选项卡上所示),在控制台上我总是看到“错误”被打印出来。ember 中是否有将 202 视为错误的内容?如果是,如何解决?

标签: javascriptember.js

解决方案


Ember Data 尝试将响应正文解析为 JSON 以获取某些状态代码(包括 202)。空字符串不是有效的 JSON。因此,正如您在一些评论中提到的那样,它会引发错误:

SyntaxError:“JSON.parse:JSON 数据的第 1 行第 1 列的数据意外结束”

由于它抛出,返回的 Promisesave()被拒绝。

你有两个选择:

  • 从您的后端返回一个有效的 JSON。
  • 将 Ember Data 的默认行为更改为不将 202 响应解析为 JSON。

请注意,这{}将是一个有效的 JSON,但不符合 JSON API 规范:

JSON 对象必须位于每个 JSON API 请求和包含数据的响应的根。这个对象定义了一个文档的“顶层”。

文档必须至少包含以下顶级成员之一:

  • data:文档的“主要数据”</li>
  • 错误:错误对象数组
  • meta:包含非标准元信息的元对象。

推荐阅读