如何更改请求标头(User-Agent)中的客户端信息?

时间:2015-07-25 20:46:55

标签: javascript iframe http-headers meanjs

我是使用MEAN-JS进行Web开发的新手,我正在尝试创建多个iframe以显示不同Web浏览器的相同网站(例如,查看ie7和9之间的区别),所以我v试图编辑我的用户代理字符串,但这不起作用。

2 个答案:

答案 0 :(得分:0)

无法更改浏览器从客户端代码发送的User-Agent标头。实现这一目标的唯一方法是通过服务器端代码代理请求。您还必须修改测试User-Agent以覆盖它的任何JavaScript(由站点返回)。

但是,更改User-Agent标头不会显示网站在不同浏览器中的外观。虽然它可能会导致网站返回稍微不同的HTML / JS / CSS(但可能不会因为这些天没有那么多人使用用户代理检测),IE7和IE9是不同的软件和他们不同地解释HTML / JS / CSS。

在IE7中测试网站外观的唯一方法是在IE7中实际打开它。

答案 1 :(得分:0)

是的,它可以在服务器端(MEAN-JS中的E,N),并且更容易使用request module,您只需要在通用路由中的选项对象中指定用户代理字符串拦截来自您网站的任何请求,并测试它是否是对图像(位文件)或纯文本的请求 您可以在此链接中找到所需的用户代理字符串:User Agent String.Com
像这样:

app.get('*', function (req, res){
        req.headers["user-agent"] = ‘YOUR USER AGENT STRING’;
        var options = {
            url: req.path,
            headers: {'user-agent':req.headers['user-agent'],
                        'accept':req.headers.accept,
            }
        };
        if ( /image\//.test(req.headers.accept)){
            options.encoding= null;}
        request(options, function (error, response, body) {
            if (!error && response.statusCode == 200) {
                res.set(
            response.headers

            );
                res.send(body);

            }
            else {
                console.log('request error: ' + JSON.stringify(error));
                res.redirect('/');
            }
        });
    });