为JsonRestStore设置HTTP Accept标头

Ale*_*zzi 5 dojo xmlhttprequest

我正在使用JsonRestStore,但想为它添加一个自定义Accept标头.最好的方法是什么?这与dijit.layout.ContentPane允许您通过设置ioArgs影响基础XHR的方式类似.所以问题可能是"什么是JsonRestStore的ioArgs?"

我正在使用声明性语法,但很乐意看到这两种方法......

(请注意:我对通过修改基础XHR来解决这个问题并不感兴趣.)

Gus*_*dez 1

您最好的选择是提供定制服务JsonRestStore。我发现执行此操作的最简单方法是从dojox.rpc.Rest. 在构造函数中,您可以提供一个函数来为所有 XHR 请求创建请求参数。例如

function getRequest(id, args) {
    return {
        url: '/service/' + id,
        handleAs: 'json',
        sync: false,
        headers: {
            Accept: 'your custom header'
        }
    }
}

var service = new dojo.rpc.Rest('/service/', true /*isJson*/, 
                                undefined /*schema*/, getRequest);
var store = new dojox.data.JsonRestStore({ service: service });
Run Code Online (Sandbox Code Playgroud)

这完全忽略了args可以包含服务的排序和范围参数的参数。

这些链接将提供更多信息: