微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

强制对js或axios使用不同的用户代理

如何解决强制对js或axios使用不同的用户代理

我正在通过axios的get和post请求路由所有请求。我正在测试一些检测用户代理的iframe,并根据它是什么代理来更改有效负载和样式等。

例如,如果我通过切换设备工具栏并将其设置为iphone在dev工具上进行更改,则所有请求都带有正确的用户代理,并且一切正常,没有任何阻塞,但是如果我通过自己的用户代理(相同(我是从设备工具栏使用的文件复制过来的),然后将其作为自定义axios标头传递,但确实可行。 iframe会检测到其设备,但请求仍被阻止。

是否可以通过js或axios强制使用另一个用户代理?

目前,我正在使用像这样的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] 举报,一经查实,本站将立刻删除。