首页 > 解决方案 > 在 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,然后是错误请求,则不会收到输入。

标签: javascriptlaravelreact-nativeaxios

解决方案


我通过这种方式修复了它;

const setBasic = () => async ({ id }) => {
    const Basic = 1
    const response = await appApi.put(`/usersub/${id}`, { Basic });
    if (response) {
        console.log(response.data)
    }
}

推荐阅读