使用 cypress 将请求标头传递给所有请求

问题描述 投票:0回答:1

我想全局拦截我的应用程序的所有请求和路由的请求标头,包括 html、js 、css

尝试了下面的代码但没有用 尝试过 cy.server 赛路

我尝试拦截的代码。

'use strict'
describe(`TodoMVC using Cypress`, function () {
  it('passing request header', () => {

    cy.server({
      whitelist: (xhr) => {

        return xhr.method === 'GET' && /\.(jsx?|html|css)(\?.*)?$/.test(xhr.url)
      },
      onAnyRequest: (route,  proxy) => {
        proxy.xhr.setRequestHeader('Referer',  '***'),
        proxy.xhr.setRequestHeader('Authorization','***')


      }
    })

    var options = {
      url: 'http://localhost:8080',
      headers: {'Referer': '***','Authorization' :'**='}
    };
   cy.visit(options);
  })
})
request http-headers cypress
1个回答
0
投票

这是一个老问题,但在 SEO 中仍然排名很高。因此,您现在可以使用

cy.intercept
来完成此操作。他们的拦截文档包含更多信息,但是要向特定主机的所有请求添加标头,您可以执行以下操作:

// this beforeEach needs to be at the global level, not inside a test
beforeEach(() => {

  // baseUrl should be configured in your cypress config
  cy.intercept(`${Cypress.config('baseUrl')}/**`, (req) => {
    req.headers["My-Header-Key"] = "My Header Value";
  });

});
© www.soinside.com 2019 - 2024. All rights reserved.