在推送或发布时,如何在dojo.store.JsonRest中为application / json设置标题“Accept”值?
var dataStore = new dojo.store.JsonRest({
target : "/project-services/"
});
dataStore.put({id: 10, field1: "Some Value", field2: "Other Value"});
目前发送的标题是:
接受text / html,application / xhtml + xml,application / xml; q = 0.9, / ; q = 0.8
答案 0 :(得分:3)
看起来标题信息不是PUT和POST的选项所以我决定只是扩展dojo.store.JsonRest。
/**
* Extend the dojo.store.JsonRest
*/
if(!dojo._hasResource["ext.store.JsonRest"]) {
dojo._hasResource["ext.store.JsonRest"] = true;
dojo.provide("ext.store.JsonRest");
dojo.require("dojo.store.JsonRest");
dojo.extend(dojo.store.JsonRest, {
put: function(object, options){
options = options || {};
var id = ("id" in options) ? options.id : this.getIdentity(object);
var hasId = typeof id != "undefined";
return dojo.xhr(hasId && !options.incremental ? "PUT" : "POST", {
url: hasId ? this.target + id : this.target,
postData: dojo.toJson(object),
handleAs: "json",
headers:{
"Content-Type": "application/json"
, "If-Match": options.overwrite === true ? "*" : null
, "If-None-Match": options.overwrite === false ? "*" : null
, "Accept": "application/javascript, application/json"
}
});
},
});
}
答案 1 :(得分:0)
我今天遇到了同样的问题,最终得到了像你一样的解决方法。 #dojo中的PEM建议我为它创建一个trac条目,所以希望它能在不久的将来修复bugs.dojotoolkit.org/ticket/12826。