我想知道是否有机会通过设置代码在mootools js之后运行的任何基于mootools的web应用程序ajax请求添加自定义标头?
根据jQuery的ajaxSetup。
注意:我对课程扩展不感兴趣。
感谢。
答案 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.HTML
和Request.JSON
,他们不会继承更改。