如何解决强制对js或axios使用不同的用户代理
我正在通过axios的get和post请求路由所有请求。我正在测试一些检测用户代理的iframe,并根据它是什么代理来更改有效负载和样式等。
例如,如果我通过切换设备工具栏并将其设置为iphone在dev工具上进行更改,则所有请求都带有正确的用户代理,并且一切正常,没有任何阻塞,但是如果我通过自己的用户代理(相同(我是从设备工具栏使用的文件复制过来的),然后将其作为自定义axios标头传递,但确实可行。 iframe会检测到其设备,但请求仍被阻止。
目前,我正在使用像这样的axios:
axios.get(req.originalUrl,{ headers: { 'User-Agent': 'Mozilla/5.0 (iPad; cpu OS 11_0 like Mac OS X) AppleWebKit/604.1.34 (KHTML,like Gecko) Version/11.0 Mobile/15A5341f Safari/604.1' } }).then((response) => {
res.send(response.data)
})
解决方法
是的,我们可以通过将附加参数 user-agent
传递给 axios 调用来为我们发出的请求设置 options
。
let options = {
headers: {
'User-Agent': 'xyz-bla-bla'
}
}
axios.get(req.originalUrl,data,options); // setting request header,using options
//or
axios.get(req.originalUrl,options).then((response) => {
//res.header({'key':'value'}) //set response header,if necessary
res.send(response.data);
});
记得区分响应头和请求头。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。