Как вы устанавливаете заголовок на «Accept» application / json в dojo.store.JsonRest при вводе или публикации?

#dojo

#dojo

Вопрос:

Как вы устанавливаете значение заголовка «Accept» в application / json в dojo.store.JsonRest при вводе или публикации?

 var dataStore = new dojo.store.JsonRest({
    target : "/project-services/"
});

dataStore.put({id: 10, field1: "Some Value", field2: "Other Value"});
  

Отправленный заголовок в данный момент:

Принимать текст / html, application / xhtml xml, application / xml;q = 0.9,/;q = 0.8

Ответ №1:

Похоже, что информация заголовка не подходит для размещения и публикации, поэтому я решил просто расширить 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 amp;amp; !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"
                    }
                });
        },
    });
}
  

Ответ №2:

Сегодня у меня была такая же проблема, и в итоге я нашел обходной путь, подобный вашему. PEM в #dojo предложил мне сделать для него запись trac, так что, надеюсь, это будет исправлено в ближайшем будущемbugs.dojotoolkit.org/ticket/12826.