相关疑难解决方法(0)

CORS 错误 - 错误:禁止跨源 http://localhost - 仅在 ReactJS/Jest 测试中

我遇到了一个问题,我向外部 API 发出的请求在执行过程中工作正常,但是在运行 Jest/Enzyme 测试时,它给了我一个 CORS 错误。有问题的函数是使用来自 API 的 JsonRpc 实现,并使用来自 node-fetch 的 fetch。不确定是否有我可以在某处应用的 CORS 设置?

我在 Jest/Enzyme 测试框架中尝试了许多异步等待的变体,但仍然遇到问题。

test("it should do something", done => {
    const component = shallow(<CustomComponent />)
    component.instance().customAsyncFunction( result => {
      expect(result.length).toEqual(5)
      done()
    })
    // return component.instance().customAsyncFunction().then(data => {
    //   expect(data.length).toEqual(5)
    // })
  })
Run Code Online (Sandbox Code Playgroud)

我尝试了上述方法和其他一些方法(例如 setTimeout 并等待它)并得到 CORS 错误。

我得到的结果是:

 console.error
 node_modules/jest-environment-jsdom/node_modules/jsdom/lib/jsdom/virtual-console.js:29
   Error: Cross origin http://localhost forbidden
       at dispatchError (...\node_modules\jest-environment-jsdom\node_modules\jsdom\lib\jsdom\living\xhr-utils.js:65:19)
       at Request.client.on.res (...\node_modules\jest-environment-jsdom\node_modules\jsdom\lib\jsdom\living\xmlhttprequest.js:679:38)
       at Request.emit (events.js:198:13)
       at Request.onRequestResponse (...\node_modules\request\request.js:1066:10)
       at ClientRequest.emit (events.js:203:15)
       at HTTPParser.parserOnIncomingClient [as onIncoming] …
Run Code Online (Sandbox Code Playgroud)

cors reactjs jestjs enzyme

7
推荐指数
3
解决办法
8272
查看次数

标签 统计

cors ×1

enzyme ×1

jestjs ×1

reactjs ×1