我如何获得json forman中的验证错误? (Laravel,Fetch)

问题描述 投票:0回答:1

当我通过提取将请求发布到控制器时,它将引发错误(代码500)。

如何使Controller正确处理我的要求?

由于我在控制器echo json_encode("Hello")中输入了内容,因此[请求正确到达了控制器,我在获取时得到了答案。

控制器

use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Illuminate\Validation\ValidationException;
use Illuminate\Support\Facades\Validator;

class ExistEmailController extends Controller
{
        public function CheckingLogin(Request $req) {
        $rules = [
        'checkLogin' => 'required|min:5|max:50'
        ];
        $data = $req->checkLogin;
        $validatedData = Validator::make($data, $rules);

        if($validatedData->fails()) {
            return response()->json($validatedData->messages(), 200);
        }
    }
}

提取请求

let data2 ;
let datasend ;
input_login.onblur = async () => {
  if(input_login.value != "")   {

    let checkLogin = input_login.value;
    let _token = $("input[name='_token']").val();

    let response = await fetch("/email-exist", {
        method: 'POST',
        headers:{"Content-Type":'application/json'},
        body:JSON.stringify({
            "_token":_token,
            "checkLogin":checkLogin
        })
    })
        datasend = await response.json();

        console.log(datasend)
}}
laravel fetch-api
1个回答
0
投票

我认为您的代码在这里失败

$data = $req->checkLogin;
$validatedData = Validator::make($data, $rules);
                                 ^^^^

The make() method accepts an array at its 1st argument

签出API文档here

并尝试以下操作

//...
$validator = Validator::make($request->all(), $rules);
//...
© www.soinside.com 2019 - 2024. All rights reserved.