Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript navigator.userAgent与ajax用户代理头_Javascript_Ajax_Post_User Agent - Fatal编程技术网

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中似乎确实有效。