如何在 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);
//...
当我 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);
//...