我怀疑您的应用程序使用的是RESTAdapter,而不是JSONAPIAdapter。 RESTAdapter是Ember Data 2.0之前的默认适配器,如here所述 您可以查看两个适配器updateRecord的方法: 静止适配器
/**
Called by the store when an existing record is saved
via the `save` method on a model record instance.
The `updateRecord` method serializes the record and makes an Ajax (HTTP PUT) request
to a URL computed by `buildURL`.
See `serialize` for information on how to customize the serialized form
of a record.
@method updateRecord
@param {Store} store
@param {Model} type
@param {Snapshot} snapshot
@return {Promise} promise
*/
updateRecord(store, type, snapshot) {
const data = serializeIntoHash(store, type, snapshot, {});
let id = snapshot.id;
let url = this.buildURL(type.modelName, id, snapshot, 'updateRecord');
return this.ajax(url, 'PUT', { data });
}
JSONAP适配器
updateRecord(store, type, snapshot) {
const data = serializeIntoHash(store, type, snapshot);
let url = this.buildURL(type.modelName, snapshot.id, snapshot, 'updateRecord');
return this.ajax(url, 'PATCH', { data: data });
}
1条答案
按热度按时间ktca8awb1#
我怀疑您的应用程序使用的是
RESTAdapter
,而不是JSONAPIAdapter
。RESTAdapter是Ember Data 2.0之前的默认适配器,如here所述
您可以查看两个适配器
updateRecord
的方法:静止适配器
JSONAP适配器
正如您所看到的,一个使用
PUT
,另一个使用PATCH
。JSONAPIAdapter现在是默认的,这就是文档处理PATCH
请求的原因。如果要使用
PATCH
而不是PUT
并保留RestAdapter
,则应从RestAdapter
扩展并修改updateRecord
方法:D我希望它会发现你好;)