Javascript navigator.userAgent与ajax用户代理头
我尝试了以下代码(代码来自),它可以在浏览器中更改Javascript navigator.userAgent与ajax用户代理头,javascript,ajax,post,user-agent,Javascript,Ajax,Post,User Agent,我尝试了以下代码(代码来自),它可以在浏览器中更改navigator.userAgent的值,效果很好!运行此代码后,当我检查navigator.userAgent的值时,它被更改为新值。但是,当我使用ajax发送post请求时,随请求自动发送的用户代理头没有更改,而是浏览器的实际用户代理。为什么用户代理没有更改ajax请求 function setUserAgent(window, userAgent) { // Works on Firefox, Chrome, Opera and IE9+
navigator.userAgent
的值,效果很好!运行此代码后,当我检查navigator.userAgent
的值时,它被更改为新值。但是,当我使用ajax
发送post请求时,随请求自动发送的用户代理
头没有更改,而是浏览器的实际用户代理。为什么用户代理没有更改ajax请求
function setUserAgent(window, userAgent) {
// Works on Firefox, Chrome, Opera and IE9+
if (navigator.__defineGetter__) {
navigator.__defineGetter__('userAgent', function () {
return userAgent;
});
} else if (Object.defineProperty) {
Object.defineProperty(navigator, 'userAgent', {
get: function () {
return userAgent;
}
});
}
// Works on Safari
if (window.navigator.userAgent !== userAgent) {
var userAgentProp = {
get: function () {
return userAgent;
}
};
try {
Object.defineProperty(window.navigator, 'userAgent', userAgentProp);
} catch (e) {
window.navigator = Object.create(navigator, {
userAgent: userAgentProp
});
}
}
}
这回答了你的问题吗?是什么让您认为AJAX请求使用
window.navigator
作为其源代码?从2015年起,它不再是一个禁止的标题,这意味着您应该能够使用Chrome设置它,但Chrome仍然存在。@Ivar感谢您的解释。设置自定义用户代理标头在任何浏览器中都不起作用。在chrome(如你所说)、safari和edge@Ivar所以没有切实可行的方法来更改ajax用户代理头?!绝对不是铬的。这似乎同样适用于Edge(Edge也基于铬)。它在Firefox中似乎确实有效。