如何在 json forman 中获取验证错误? (Laravel,获取)

How can I get validate errors in json forman ? (Laravel,Fetch)

当我 post 通过 fetch 请求控制器时,它会抛出错误(代码 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)
}}

我假设你的代码在这里失败了

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

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

Check out API Docs here

然后试试下面的方法

//...
$validator = Validator::make($request->all(), $rules);
//...