我正在 Laravel 控制器上進(jìn)行簡單的驗(yàn)證:public function updateInfo(Request $request) { $validator = $request->validate([ "name" => ["string", "nullable"], "email" => ["email", "nullable"], "currentPassword" => ["password:api"] ]); return json_encode($validator);}我的問題是,如果失敗,此驗(yàn)證會(huì)將我重定向到主頁,并且我正在通過 AJAX 發(fā)出請(qǐng)求,我知道 Laravel 會(huì)檢測(cè)到何時(shí)通過 Ajax 發(fā)出請(qǐng)求,但它僅在正常請(qǐng)求時(shí)才有效(典型請(qǐng)求在我發(fā)送了標(biāo)頭,Content Type application/json并在正文中發(fā)送了一個(gè)普通的 JSON但是 Laravel 無法檢測(cè) Ajax 請(qǐng)求何時(shí)不是Content Type application/json,我使用的FormData()是 JavaScript 對(duì)象,所以,我不發(fā)送 header Content Type application/json,并在正文中發(fā)送 FormData 對(duì)象。我認(rèn)為它模擬了重新加載頁面的典型 HTTP 請(qǐng)求,因此 Laravel 無法檢測(cè)到它,但它給我的 ajax 響應(yīng)帶來了麻煩,因?yàn)?Laravel 響應(yīng)了重定向,并且在我的 Ajax 響應(yīng)中我捕獲了 HTML 代碼主頁的。我能做些什么?
1 回答

素胚勾勒不出你
TA貢獻(xiàn)1827條經(jīng)驗(yàn) 獲得超9個(gè)贊
您可以將validator()輔助函數(shù)與validate()方法一起使用,它將幫助您進(jìn)行 AJAX 調(diào)用和普通調(diào)用
validator($request->all(), [
"name" => ["string", "nullable"],
"email" => ["email", "nullable"],
"currentPassword" => ["password:api"]
])->validate();
- 1 回答
- 0 關(guān)注
- 138 瀏覽
添加回答
舉報(bào)
0/150
提交
取消