我的网站有一些页面使用jquery和一些dojo(我们实际上转向jquery)。我需要在所有ajax请求上设置一个公共自定义标头,无论它是使用jquery还是dojo。我可以这样做:
$.ajaxSetup({
headers: {
'X-app':'ios'
}
});
dojo._xhr_orig = dojo.xhr;
dojo.xhr = function(/*String*/ method, /*dojo.__XhrArgs*/ args, /*Boolean?*/ hasBody){
args = args || {};
args.headers = args.headers || {};
args.headers['X-app'] = 'ios';
return dojo._xhr_orig.apply(this, arguments);
}
但我需要在整个网站上这样做。有没有什么我可以在XMLHTTPrequest原型上做一些改变呢?
答案 0 :(得分:0)
您可以尝试这样的事情:
$("body").bind("ajaxSend", function(elm, xhr, s){
if (s.type == "POST") {
xhr.setRequestHeader('X-app', 'ios');
}
});
顺便小心使用大写设置请求标题,我有一些问题IE6,IE7和IE8没有正确设置。
编辑:
这甚至更好(不必担心不区分大小写):
$.ajaxSetup({
beforeSend: function (jqXHR, settings) {
jqXHR.setRequestHeader('X-app', 'ios');
}
});
希望这对你有所帮助。 问候。