※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1603294796.A.19A.html
→ kingofsdtw: php fpm 預設首頁不是有範例? 10/21 23:54
→ codepo: 你要不要直接說是哪一個檔案哪一行code? 10/22 00:01
推 BigTounge: ajax的data先用JSON.stringfy試試看 10/22 00:30
→ BigTounge: 然後其實有php版跟ajax版比較適合問 10/22 00:32
推 jack0204: 你有沒有開csrf token? 10/22 00:33
→ BigTounge: 打錯了 更正JSON.stringify 10/22 00:33
→ bigtongue: 沒寫過laravel 但是我看你取參數的方法跟官網寫的不太 10/22 01:35
→ bigtongue: 一樣 https://laravel.tw/docs/5.0/requests 10/22 01:35
推 MyNion: 可惜偶4寫C#的,不然我之前專題也是弄串接Google Map API 10/22 01:46
→ MyNion: 然後用AJAX取值來動態改畫面呈現 10/22 01:46
→ plcder: ajax裡面的type改成method應該就可以我之前也是用type無效 10/22 01:47
→ wesley84212: 弱弱的想請問一下,如果把 method的 request['city'] 10/22 02:26
→ wesley84212: 換成$request->city這樣呢 10/22 02:26
→ bigtongue: 建議你可以先在發送請求時看request的body 10/22 02:35
→ bigtongue: 然後直接debug看request接收到了什麼東西 10/22 02:37
→ wesley84212: 先console一下post到api之前的body看有沒有問題、然 10/22 02:37
→ wesley84212: 後再看一下傳到laravel的內容? 可能key的大小寫打錯 10/22 02:37
→ wesley84212: 之類的XD 10/22 02:37
→ bigtongue: 因為我看你js的city的c是大寫php卻是用小寫取 10/22 02:37
→ yeeeeell: data: {city: city} 大小寫? 10/22 02:40
→ wesley84212: Body是data: {City: city} 10/22 02:42
→ wesley84212: 不過php裡面是request[‘city’] 感覺怪怪的 10/22 02:42
→ j269587: Controller的citylinkarea內 10/22 07:27
→ j269587: 加個if($request->ajax()){} 10/22 07:29
→ j269587: 把你其他原本寫的都寫在這裡面試試 10/22 07:29
推 windclara: 最好大小寫保持一致。有時這種小坑會害你浪費好多天 10/22 08:12
推 alihue: CORS? 有開 browser console 看 log 嗎 10/22 09:21
推 wesley84212: 還有一個問題是,你的HTML select option 只有給他te 10/22 09:33
→ wesley84212: xt 沒有設定value? 10/22 09:33
→ wesley84212: <option value=‘’>{{ $city->city}}<option> 10/22 09:33
→ wesley84212: 然後下面用.val() 10/22 09:33
→ wesley84212: 還是就是要拿text而已 那當我沒說XD 10/22 09:34
→ gundamew: 官方文件有寫 $request->input('name') 10/22 12:05
→ gundamew: 然後雖然自己寫的專案沒差,但還是建議加個 validator 10/22 12:06
→ gundamew: $request->ajax() 是判斷 request 種類,回 bool 正常 10/22 12:07
→ yyc1217: 用網址帶參數的方式測試$_GET能否取值(query parameter) 10/22 12:53
→ yyc1217: 用$_POST的話要注意雖然method都是post 但ajax跟html for 10/22 12:56
→ yyc1217: m submit出去的request格式不一樣 10/22 12:56
→ yyc1217: 不過記得laravel已針對這點處理過了 10/22 12:56
推 OriginStar: 問題解決了嗎,沒用過Laravel,查了一下網路資料 10/22 13:09
→ OriginStar: web.php只有Route::post('/citylinkarea' 10/22 13:10
→ OriginStar: 所以用get method拒絕是合理的吧 10/22 13:11
→ OriginStar: 另外Laravel官方文件說會以json array的方式回覆 10/22 13:12
→ OriginStar: AddressController.php寫死的範例看來是json array 10/22 13:14
→ OriginStar: 從DB撈的部分原PO自行確認有沒有轉換 10/22 13:14
推 OriginStar: 應該說data是array回覆的話,content-type會自動是 10/22 13:33
→ OriginStar: application/json,不用自己處理,其端才能正確解析 10/22 13:34
→ ssccg: 首先你的ajax的request的ontent-type要設成json 10/22 14:45
→ ssccg: $.ajax的dataType是預期response的type (Accept header) 10/22 14:48
→ ssccg: 要用contentType: 'application/json' 10/22 14:49
→ ssccg: 然後同上面有人提過的,要看實際送出的HTTP request,要看 10/22 14:56
→ ssccg: 瀏覽器開發者工具的Network那頁 10/22 14:57
→ ssccg: 會發現照你的$.ajax寫法,送出的Content-Type是application 10/22 14:58
→ ssccg: /x-www-form-urlencoded,Body的內容是JSON沒錯,但是在這 10/22 14:58
→ ssccg: 種Content-Type下body的格式是key1=value1&key2=value2... 10/22 14:59
→ ssccg: 會解析成整個JSON字串是key對應到空白value 10/22 15:00
→ ssccg: 是說我不確定你最早的版本長怎樣,以現在的來說其實沒必要 10/22 15:27
→ ssccg: Request用json(不要JSON.stringfy),預設的方式就好 10/22 15:34