我正在try 使用PUT请求更新数据库中的值,但我遇到了CSRF错误,并且我不知道如何在Flutter 中修复它,所以我使用了Route::withoutMiddleware(['csrf'])

我期待记录被更新,但我仍然有错误:

PUT http://localhost/update/mike@fmaila.com 419(未知状态)

我还try 在VerifyCsrfToken.php文件中添加http://localhost/* 我怎么才能修好它呢?

就本报告而言:

public function updateStatus(Request $request, $email)
    {
        $validatedData = $request->validate([
            'is_active' => 'required|string',
        ]);
        $record = AddSeller::where('email', $email)->firstOrFail();
        $record->is_active = $validatedData['is_active'];

        $record->save();
        return response()->json(['message' => 'Record updated successfully'], 200);
    }

Flutter

Future<void> updateState(String email, String newValue) async {
  final apiUrl = 'http://localhost/update/$email'; 
  final headers = {'Content-Type': 'application/json'};
  final requestData = {'is_active': newValue}; 
  try {
    final response = await http.put(
      Uri.parse(apiUrl),
      headers: headers,
      body: jsonEncode(requestData),
    );
    if (response.statusCode == 200) {
      print('Record updated successfully');
    } else {
      print('Failed to update record: ${response.body}');
    }
  } catch (e) {
    print('Error: $e');
  }
}

推荐答案

在为API定义路由时,不要在web.php中定义它们,因为大多数情况下,有状态路由都是在那里定义的.相反,在api.php中定义API路由,这些路由是无状态的,因此您不需要随请求一起发送CSRF令牌.

所以你需要用api.php来定义你的路由.同样在默认情况下,这些路由的前缀为api\,因此您的新路由将是,

http://localhost/api/update/$email

Json相关问答推荐

Golang JSON Date Tim.Date()测试请求

服务器不返回JSON

我发现GoFr响应总是包含在数据字段中,如何返回自定义响应?

如何在Vega中使标记的符号在鼠标指针悬停时可点击

对一些JSON模式验证的混淆

使用jq过滤复杂json对象中的数据

如何在VB6中将字符串转换或解码为可读格式?

德纳比可视化区域图表 Power BI

未知的META规范,无法验证.[规范v1.0.1]

使用杰克逊解析Kotlin 中的通用密封类

如何在 wso2 中组合 2 个 json 有效负载?

下一个 Js 部署在 getStaticPath 函数上失败:在 JSON.parse 的位置 0 的 JSON 中出现意外的令牌 < 但在本地运行

jQuery fullcalendar 发送自定义参数并使用 JSON 刷新日历

Spring MVC:不反序列化 JSON 请求正文

使用 Node.js 对 JSON 中的字符串大小有限制吗?

在 Webpack 中加载静态 JSON 文件

json_encode() 返回 false

Gson 将一组数据对象转换为 json - Android

如何使用 Json.NET 反序列化可以是两种不同数据类型的 JSON 属性

使用新的 Net Core 3.0 Json 时忽略属性