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

Alw*_*sed 6 javascript user-agent axios

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

例如,如果我通过切换设备工具栏并设置为 iphone 在开发工具上更改它,则所有请求都来自正确的用户代理并且一切正常,没有任何内容被阻止,但是如果我通过我自己的用户代理(与我相同)从设备工具栏正在使用的那些复制)并将其作为自定义 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)
    })
Run Code Online (Sandbox Code Playgroud)

kis*_*ore 4

是的,我们可以通过将附加参数传递给 axios 调用user-agent来设置我们发出的请求。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, data, options).then((response) => {
  //res.header({'key':'value'})     //set response header, if necessary
  res.send(response.data);
});

Run Code Online (Sandbox Code Playgroud)

请记住区分响应标头请求标头