【发布时间】:2019-06-20 17:29:39
【问题描述】:
我正在使用react-adminframework,并且我已经编写了自己的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
})
));
}
如果您对代码有任何疑问,我可以澄清一下。
提前感谢您的任何想法。
【问题讨论】:
-
if (resource === 'User') { resource = 'User';如果资源是USER则将资源设置为USER? -
这也是有效的 js 语法吗?
.then(response => ( resource = 'Location',。这段代码表示在完成承诺时返回一个对象,但resource = 'Location',不是有效的对象构造函数。也许您打算使用{而不是(,但不应该以逗号结尾... -
@tic 我将编辑代码,使其不包含那毫无价值的行,语法是正确的。
-
您不能在 GET 请求中发送正文,如果您想请求一些数据,您可以通过 url 作为请求参数传递它,否则您可能希望将 API 更改为 POST 请求
-
@KhaledOsman 但据我所知,我使用的是
POST方法,对吗?
标签: javascript reactjs react-admin