javascript - 在 react native 中使用 axios 发送数据的问题
问题描述
我在发送 put 请求时遇到问题。我已经使用邮递员测试了 api,当我发送带有表单数据主体和内容类型 ( application/json ) 标头的请求时,它不起作用,事实上,当我转储请求时,我意识到没有发送任何内容,但是再次在邮递员中,如果我使用原始正文发送请求,它会成功运行,现在使用 axios 将相同的东西带到我的反应本机项目中以发出相同的请求,我得到与使用表单数据时相同的错误邮递员,什么都没有发送,我收到错误 500(错误请求)。所以现在在后端,我使用将请求放在 if 下,所以当我运行该函数时,我得到了成功,但没有发送任何内容。问题是它什么都不发送,根本没有发送任何输入。
这就是这里的功能;
const setBasic = () => async ({ id }) => {
const data = new FormData();
data.append('Basic', 1)
const config = {
method: 'put',
url: `http://89bb1d61.ngrok.io/api/usersub/${id}`,
body: JSON.stringify(data),
headers: { "Content-type": "application/json" }
}
const response = await axios(config)
if (response) {
console.log(response.data)
} else {
console.log('Error')
}
}
但是什么都没有发送。
这是服务器端代码;
public function update(Request $request, $id)
{
$user = User::find($id);
if($request->has('Basic')){
$user->Basic = $request->input('Basic');
}
// $user->Basic = $request->input('Basic');
if($request->has('Standard')){
$user->Standard = $request->input('Standard');
}
if($request->has('Premium')){
$user->Premium = $request->input('Premium');
}
$user->save();
return response()->json([
'message' => 'Success',
]);
}
它将在此处返回成功消息(我控制台记录了 response.data),但这是因为我已将if包裹在请求周围。如果我要删除if,然后是错误请求,则不会收到输入。
解决方案
我通过这种方式修复了它;
const setBasic = () => async ({ id }) => {
const Basic = 1
const response = await appApi.put(`/usersub/${id}`, { Basic });
if (response) {
console.log(response.data)
}
}
推荐阅读
- c# - 在 Debian 上发布后无法运行 ASP.NET Core API
- javascript - ¿ 调整打开的剑道窗口的大小?
- mysql - 使用多列制作续集 WHERE IN
- r - 当数字非常小且接近零时无法检查条件
- powershell - 在 Powershell 中从 CSV 文件导出服务器服务的结果
- android - 如何在 Unity3D 中隐藏通知 OneSignal
- rest - 使用带有 RestSharp 的凭据从 TFS REST API 获取用户配置文件
- node.js - 使用 Node sdk 将模块连接到 Edge Hub 时出错 - NotConnectedError:无法获取本地颁发者证书
- json - Swift 4:JSONDecoder 在一种特定情况下失败 - “操作无法完成”
- hyperledger-fabric - 握手失败,出现致命错误 SSL_ERROR_SSL