Laravel 6 – Ajax Request Tutorial

Yu-Cheng Hung
4 min readDec 12, 2019

--

引用: https://morioh.com/p/74302f9585e0

嗨大家好,今天要來介紹該如何在Laravel 6中使用Ajax( Asynchronous JavaScript and XML),本篇適合對於Ajax已有基本概念的讀者,若還不是很清楚的讀者建議可以先自行google相關資訊了解其運作原理及用途。

筆者之前雖然在ASP.NET和Native PHP也常使用Ajax來做一些使用者資訊顯示,但在Laravel中使用時發現有一些小地方需要注意,因此特別記錄下來分享給各位,那麼就由一個簡單的範例 – 學生分組資訊開始吧!

PS.此範例僅於View和Controller間做溝通,並不涉及Model。

Route

建立好Laravel專案後,首先先對route進行設定。這邊我們設定兩個route,分別是studentInfo這個view的GET(負責顯示view)和POST(負責回應Ajax post request),並對應HomeController的不同function。

routes/web.php

Route::get('studentInfo', 'HomeController@studentInfo');
Route::post('studentInfo', 'HomeController@studentInfoPost');

Controller

同樣的,為了對應route的設定,建立HomeController.php並增加兩個function分別用來顯示view和回應Ajax post request。

app/Http/Controllers/HomeController.php

注意,若之後讀者們寫Laravel Ajax有出現此錯誤訊息:

LOG.error: The Response content must be a string or object implementing __toString(), "boolean" given.

可嘗試將 return $result改成 return response()->json($result)

View

最後我們建立studentInfo.blade.php,並以jQuery Ajax來做資料傳遞。

resources/views/studentInfo.blade.php

這邊請注意幾個地方:

Laravel強制要求要防範CSRF( Cross-site request forgery)攻擊,所以須加上

否則會出現這個錯誤訊息:

如果覺得這樣寫太麻煩,也可在ajax傳json data的地方加入:

或是在<form>下面加入@csrf,更多資訊請參考Laravel官方文件

成果測試

開啟studentInfo可看到如下頁面:

輸入資訊並Submit:

即可看到下方顯示成功返回的data!那麼今天的分享就到這裡,See you!

--

--

Responses (2)