无法在“窗口”上执行“获取”:使用GET / HEAD方法的请求不能在react-admin中包含主体

时间:2019-06-18 19:06:35

标签: javascript reactjs react-admin

我正在使用react-admin框架,并且已经编写了自己的DataProvider。我试图实现这一点,当创建用户时,也会创建UserPossession的实例。我的代码如下所示,但是react-admin Front-end仅显示警告消息:

Failed to execute 'fetch' on 'Window': Request with GET/HEAD method cannot have body 

我检查了开发人员工具中的“网络”选项卡,对服务器的每个请求都是正确的,没有错误。这让我感到困惑和困惑,因为我不知道该警告的含义或什至为什么会发生。

我的代码是convertDataRequestToHTTP常量的一部分,看起来像这样:

if (resource === 'User') {
  url = `${apiUrl}/${resource}`;
  options.body = params.data;
  httpClient(url, {
    method: 'POST',
    body: JSON.stringify(options.body),
  })
  .then(response => (
    url = `${apiUrl}/Location`,
    options.method = 'POST',
    options.body = JSON.stringify({
       "odata.type": "HardwareDatabase.UserPossession",
       "Name": response.json.Login,
       "UserId": response.json.Id
    }),
    httpClient(url, {
      method: options.method,
      body: options.body
    })
  ));
}

如果您对我可以澄清的代码有任何疑问。

谢谢您的任何想法。

1 个答案:

答案 0 :(得分:0)

由于您要声明此代码段是https://{0}.base.maps.api.here.com/maptile/2.1/maptile/newest/normal.day/{1}/{2}/{3}/256/png8? 的一部分,所以我可能会看到此问题。 convertDataRequestToHTTP不能在此常量中使用,因为它会创建对API的重复调用,或者在您的情况下会创建此警告。正确的方法是只声明httpClient常量。

options

稍后将常量从OData转换为强制性React Admin格式的常量,请说明url = `${apiUrl}/${resource}`; options.body = JSON.stringifiy(params.data); options.method = 'POST';

httpClient