Ошибка CORS при запросе маршрута в тесте кипариса - PullRequest
0 голосов
/ 03 мая 2019

Я хотел бы посмеяться над некоторыми вызовами API, выполняемыми моим SPA.Поэтому я использую cypress.JS и проверил, как это сделать, используя следующий тест.

it("Then it works", () => {
    axios.defaults.baseURL = 'http://localhost';

    cy.server()
    cy.route("GET", "http://localhost/users/", true)

    axios.get("/users/").then(response => {
        console.log("received response: " + response)
        expect(response.body).to.equal(true)
    }).catch(error => console.log(error))
})

Это не работает, я получаю сообщение об ошибке «Доступ к XMLHttpRequest в« http://localhost/users/' from origin »http://localhost:8080' заблокировано политикой CORS: в запрошенном ресурсе отсутствует заголовок «Access-Control-Allow-Origin». "

Есть ли способ предотвратить эту ошибку во время тестов?Я не понимаю, почему Cypress обрабатывает этот простой тест таким образом, что эта ошибка может произойти.

Ответы [ 2 ]

2 голосов
/ 03 мая 2019

В вашем cypress.json установите chromeWebSecurity на false.

{
  "chromeWebSecurity": false
}

Начиная с документации кипариса здесь , установка chromeWebSecurity на false позволяет вам сделатьследующее:

  • Отображение небезопасного содержимого
  • Переход к любому супердомену без ошибок перекрестного происхождения
  • Доступ к встроенным в ваше приложение фреймам перекрестного происхождения.
0 голосов
/ 06 мая 2019

Проблема заключалась в том, что я настроил кипарис с базовым URL localhost: 8080

{
  "baseUrl": "http://localhost:8080"
}

, но использовал только локальный хост в моем тесте

   it("Then it works", () => {

    cy.server()           
    cy.route({
        method: 'GET',     
        url: '/users/1',    
        response: true        
    })

    axios.get("http://localhost:8080/users/1").then(response => {
        console.log("received response: " + response)
        expect(response.body).to.equal(true)
    }).catch(error => console.log(error))
})

Тест все еще не работает, ноНа мой начальный вопрос дан ответ.Произошла ошибка из-за отсутствия порта.Я обновлю это, когда найду решение для моей другой проблемы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...