我自定义了RESTAdapter以连接到 RestHeart 服务器(用于 mongodb 的 RestFull Web 网关服务器):
import DS from 'ember-data';
export default DS.RESTAdapter.extend({
host:'http://127.0.0.1:8080',
namespace: 'boards'
});
我创建了一个模型来测试:
import DS from 'ember-data';
export default DS.Model.extend({
identity: DS.attr()
});
一切正常,但是当我在记录上使用 save 方法时(开发人员):我在浏览器控制台中有一个警告:
服务器为 POST http://.../boards/Developer返回了一个空字符串,该字符串 无法解析为有效的 JSON。返回 null 或 {}。
和以下错误:
SyntaxError:在 XMLHttpRequest 的完成 (jquery.js:9255) 的 ajaxConvert (jquery.js:8787) 的 parse () 处 JSON 输入意外结束。(jquery.js:9548)
我知道为什么:RESTAdapter 正在等待 JSON 响应,而当添加 => 时,restHeart 服务器返回一个空响应,因此 jQuery 在尝试解析空响应时会导致错误。
使用以前版本的 ember-data,可以使用钩子ajaxOptions将 jQuery ajax 请求的 dataType 变量设置为“*” :
export default DS.RESTAdapter.extend({
ajaxOptions(url, type, options) {
var hash = this._super(url, type, options);
hash.dataType = "*";
return hash;
},
host:'http://127.0.0.1:8080',
namespace: 'boards'
});
使用 ember-data 2.16,ajaxOptions现在是私有的,我不知道如何修改 dataType 变量...以便 null 响应不会被解析为 JSON 响应
版本:
- 余烬数据 2.16
- 余烬 2.18