使用MooTools在任何ajax请求上的自定义标头

时间:2015-08-11 14:35:08

标签: ajax xmlhttprequest mootools

我想知道是否有机会通过设置代码在mootools js之后运行的任何基于mootools的web应用程序ajax请求添加自定义标头?

根据jQuery的ajaxSetup。

注意:我对课程扩展不感兴趣。

感谢。

1 个答案:

答案 0 :(得分:2)

您既可以使用自己的options继承Request并定义自己的headers,也可以更改原型。

(function(){
    // sets defaults for all request instances
    this['X-Requested-With'] = 'Power';
}.call(Request.prototype.options.headers));

new Request({
    url: '/echo/html/',
    data: {
        html: 'hi'
    },
    method: 'post'
}).send();

等等。

基本上是这样的:

var myOptions = {
    'X-Requested-With': 'foo'
};

Object.merge(Request.prototype.options.headers, myoptions);

和扩展名:

Request.Fixed = new Class({

    Extends: Request,

    options: {
        headers:  {
            'X-Requested-With': 'foo'
        }
    }
});

new Request.Fixed({
    url: '/echo/html/',
    data: {
        html: 'hi'
    },
    method: 'post'
}).send();

除非您正在解决一个非常特殊的CORS问题,否则我建议使用扩展 - 至少它会告诉谁不读取代码它不使用标准的Request实例,更容易理解和维护。

  

我理解你对子类化并不感兴趣 - 但是,这是正确的做法,当域已经改变/配置/代码重用时,我已经有了这样的单行黑客回来并在后面咬我人们忘记了调整。让一个地狱的旅程找到了它全部破碎的原因。子类化的缺点是直接扩展Request的其他子类,如Request.HTMLRequest.JSON,他们不会继承更改。