当我通过提取将请求发布到控制器时,它将引发错误(代码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
签出API文档here
并尝试以下操作
//...
$validator = Validator::make($request->all(), $rules);
//...