无法在 'Window' 上执行 'fetch':使用 GET/HEAD 方法的请求不能在 react-admin 中有正文
Failed to execute 'fetch' on 'Window': Request with GET/HEAD method cannot have body in react-admin
我正在使用 react-admin
框架,并且我已经编写了自己的 DataProvider
。我试图在创建 User 时实现,同时创建 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
})
));
}
如果您对代码有任何疑问,我可以澄清。
感谢您提前提出任何想法。
既然你说这个代码片段是 convertDataRequestToHTTP
的一部分,我可能会看到这个问题。 httpClient
不能在此常量中使用,因为它会创建对 API 或您的情况的重复调用,此警告。正确的方法是只声明 options
常量。
url = `${apiUrl}/${resource}`;
options.body = JSON.stringifiy(params.data);
options.method = 'POST';
稍后在将响应从 OData 转换为强制 React Admin 格式的常量中,说明 httpClient
。
params.data = {
"odata.type": "HardwareDatabase.UserPossession",
"Name": response.json.Login,
"UserId": response.json.Id
};
httpClient(`${apiUrl}/Location`, {
method: 'POST',
body: JSON.stringify(params.data),
})
我正在使用 react-admin
框架,并且我已经编写了自己的 DataProvider
。我试图在创建 User 时实现,同时创建 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
})
));
}
如果您对代码有任何疑问,我可以澄清。
感谢您提前提出任何想法。
既然你说这个代码片段是 convertDataRequestToHTTP
的一部分,我可能会看到这个问题。 httpClient
不能在此常量中使用,因为它会创建对 API 或您的情况的重复调用,此警告。正确的方法是只声明 options
常量。
url = `${apiUrl}/${resource}`;
options.body = JSON.stringifiy(params.data);
options.method = 'POST';
稍后在将响应从 OData 转换为强制 React Admin 格式的常量中,说明 httpClient
。
params.data = {
"odata.type": "HardwareDatabase.UserPossession",
"Name": response.json.Login,
"UserId": response.json.Id
};
httpClient(`${apiUrl}/Location`, {
method: 'POST',
body: JSON.stringify(params.data),
})