【问题标题】:fetchMock: uncaught typeErrorfetchMock:未捕获的类型错误
【发布时间】:2019-02-22 10:35:31
【问题描述】:

我用 fetchMock (v.5.13.1) 模拟了我的 API-Respones。我已经使用它很长时间了,我还没有看到这种行为。

我模拟了两个非常相似的 GET 响应。

fetchMock.get('glob:*/shippings/',"results":[
{"id": "1234", "status": "RELEASED", "foo": "bar"},
{"id": "5678", "status": "CREATED", "foo": "bar"},)

fetchMock.get('glob:*/shipping/myId1234',
{"id": "1234", "status": "RELEASED", "foo": "bar"})

现在,第一个可以正常工作,但是第二个 get 会返回此错误消息:

fetch-mock.js:187 Uncaught TypeError: Invalid status RELEASED pass 在响应对象上。使用状态为的 JSON 对象进行响应 属性将对象分配给主体,例如{“身体”:{“状态: “注册”}}

我有一个假设,我不能模拟一些包含状态的响应,因为这在某种程度上是状态代码的保留属性,但我不太确定,我在网上找不到任何类似的错误。

【问题讨论】:

    标签: reactjs fetch-mock


    【解决方案1】:

    对于 fetchMock 的第二个请求,它假定 status 是作为整数提供的标准代码之一。根据文档,提供给fetchMock 的配置需要以下参数

    如果一个对象只包含下面列出的属性 用于配置一个Response返回

    正文:字符串 |对象

    设置响应正文。请参阅文档的非配置对象部分 下面是传递对象时的行为

    服务器响应正常 { token: 'abcdef' }

    状态:整数

    设置响应状态

    200、404、503

    标题:对象

    设置响应头

    {'Content-Type': 'text/html'}

    redirectUrl:字符串

    响应应声称来自的 url(到 模仿跟随的指示)。还会设置redirected: true 上 回应

    抛出:错误

    强制 fetch 返回一个被 throws 值拒绝的 Promise

    new TypeError('获取失败')

    但是,对于自定义状态属性,您可以使用正文进行响应

    fetchMock.get('glob:*/shipping/myId1234', {
        body: {"id": "1234", "status": "RELEASED", "foo": "bar"}
    })
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-12-29
      • 2014-12-07
      • 2015-09-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多