Soft_Job 板


LINE

各位大神好: 这两天自己用Google Map API 弄一个地址查询 在做连动式下拉选单时抓不到 Ajax 传的值 不论用$request, $_GET 或 $_POST 里头都是空的 Ajax 用GET 或 POST 传都一样 而我自己在後端固定抓某笔资料库的资料以 JSON 传送 或是传一笔假资料以 JSON 传送又是成功能送回前端使选单连动 但就是改回由收到 Ajax 送的来资料再进资料库找就会失败 Ajax 那里自己用 console.log('city') 确实是有东西的 已经困两天了,找了好多网站和能问的人也是没解 不晓得问题出在哪?有点开始怀疑是不是作业系统的编码问题 ---------------- 以下是东西的Github https://github.com/snowtim/damaiquiz_googlemap Ajax 写的部分在/resources/views/googlemap.blade.php 里面 第105行开始 後端写在/app/Http/Controllers/AddressController.php里面 citylinkarea 那个 function 将 Ajax 引到 controller 的 route 写在/routes/web.php 当中Route::post('/citylinkarea, ..........) 那行 作业系统:Ubuntu 後端 语言:PHP 资料库:MySQL 框架:Laravel 谢谢~ --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 61.224.206.23 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Soft_Job/M.1603294796.A.19A.html
1F:→ kingofsdtw: php fpm 预设首页不是有范例? 10/21 23:54
2F:→ codepo: 你要不要直接说是哪一个档案哪一行code? 10/22 00:01
忘记了~已补上 ※ 编辑: firetim (61.224.206.23 台湾), 10/22/2020 00:18:40
3F:推 BigTounge: ajax的data先用JSON.stringfy试试看 10/22 00:30
4F:→ BigTounge: 然後其实有php版跟ajax版比较适合问 10/22 00:32
5F:推 jack0204: 你有没有开csrf token? 10/22 00:33
有哦~我有开
6F:→ BigTounge: 打错了 更正JSON.stringify 10/22 00:33
还是一样,不管是GET或POST都同样情形,就是当後端回传值写死能正常回传 只要改回非写死的话,除了POST我没办法用window.location进去看,会跑出 The GET method is not supported for this route. Supported methods: POST. 还有POST非写死後端传回来会出现 http://127.0.0.1:8000/citylinkarea 500 (Internal Server Error)询息外 GET就是单纯没变化,然後同样都会执行写在Ajax的error情形询息 ※ 编辑: firetim (61.224.206.23 台湾), 10/22/2020 01:25:33
7F:→ bigtongue: 没写过laravel 但是我看你取参数的方法跟官网写的不太 10/22 01:35
8F:→ bigtongue: 一样 https://laravel.tw/docs/5.0/requests 10/22 01:35
中文的版本停在5,不过当时用过5.6和5.7自己的取法是可以的 然後现在Google Map这个是版本是8的,但下方另一个function还是可以取到
9F:推 MyNion: 可惜偶4写C#的,不然我之前专题也是弄串接Google Map API 10/22 01:46
10F:→ MyNion: 然後用AJAX取值来动态改画面呈现 10/22 01:46
地图是可以出现,用写死的假资料也能标出地点 现在卡在查询地点这里办法继续下去
11F:→ plcder: ajax里面的type改成method应该就可以我之前也是用type无效 10/22 01:47
谢谢~还是相同情况QQ~一直卡在这里 後面的虽然有先写不过没办法跑完全部 根本不知道还会有什麽问题QQ~ ※ 编辑: firetim (61.224.206.23 台湾), 10/22/2020 02:03:05 ※ 编辑: firetim (61.224.206.23 台湾), 10/22/2020 02:05:12 ※ 编辑: firetim (61.224.206.23 台湾), 10/22/2020 02:05:42
12F:→ wesley84212: 弱弱的想请问一下,如果把 method的 request['city'] 10/22 02:26
13F:→ wesley84212: 换成$request->city这样呢 10/22 02:26
也可以哦~自己试过两种都取得到 只是我的问题还是一样 在citylinkarea的function里加了一段$request['city']没值的回传询息 结果都会跑到这一段去 ※ 编辑: firetim (61.224.206.23 台湾), 10/22/2020 02:34:02
14F:→ bigtongue: 建议你可以先在发送请求时看request的body 10/22 02:35
15F:→ bigtongue: 然後直接debug看request接收到了什麽东西 10/22 02:37
有~request的body都只有关於来源位址的资料 但就是没Ajax送来的东西 换成看$_GET, $_POST里头也OA都是空的
16F:→ wesley84212: 先console一下post到api之前的body看有没有问题、然 10/22 02:37
17F:→ wesley84212: 後再看一下传到laravel的内容? 可能key的大小写打错 10/22 02:37
18F:→ wesley84212: 之类的XD 10/22 02:37
您是指在data这里打成data:console.log({City: city})这样吗? 我这样打过console出来是有东西的
19F:→ bigtongue: 因为我看你js的city的c是大写php却是用小写取 10/22 02:37
20F:→ yeeeeell: data: {city: city} 大小写? 10/22 02:40
21F:→ wesley84212: Body是data: {City: city} 10/22 02:42
22F:→ wesley84212: 不过php里面是request[‘city’] 感觉怪怪的 10/22 02:42
大小写都有试过~不过还是一样的情形 ※ 编辑: firetim (61.224.206.23 台湾), 10/22/2020 04:26:27
23F:→ j269587: Controller的citylinkarea内 10/22 07:27
24F:→ j269587: 加个if($request->ajax()){} 10/22 07:29
25F:→ j269587: 把你其他原本写的都写在这里面试试 10/22 07:29
谢谢~不过还是一样,然後我进去看dd($request->ajax()),是false 会不会是少引入了什麽? ※ 编辑: firetim (61.224.206.23 台湾), 10/22/2020 08:05:53 ※ 编辑: firetim (61.224.206.23 台湾), 10/22/2020 08:09:32
26F:推 windclara: 最好大小写保持一致。有时这种小坑会害你浪费好多天 10/22 08:12
谢谢您的提醒~一开始自己是写一致的 後来一直试没效才开始大小写交叉写想了解是不是有什麽地方是规定一定得大写自己不知道
27F:推 alihue: CORS? 有开 browser console 看 log 吗 10/22 09:21
是指开发人员工具最下面那格吗?自己知道能看的地方都有开, 不晓得这是不是您说的?
28F:推 wesley84212: 还有一个问题是,你的HTML select option 只有给他te 10/22 09:33
29F:→ wesley84212: xt 没有设定value? 10/22 09:33
30F:→ wesley84212: <option value=‘’>{{ $city->city}}<option> 10/22 09:33
31F:→ wesley84212: 然後下面用.val() 10/22 09:33
32F:→ wesley84212: 还是就是要拿text而已 那当我没说XD 10/22 09:34
谢谢您~这里的确是自己没弄好,已经改了
33F:→ gundamew: 官方文件有写 $request->input('name') 10/22 12:05
34F:→ gundamew: 然後虽然自己写的专案没差,但还是建议加个 validator 10/22 12:06
35F:→ gundamew: $request->ajax() 是判断 request 种类,回 bool 正常 10/22 12:07
原来是这样~了解了 官方文件写的$request->input('name')我当时也有这样写过,但状况一样 所以当下觉得应该是在东西传到後端这部分有问题,不过一直当时找不出原因 validator因为这个东西有时间压力所以想说至少要把功能做出来 等功能OK我再回来补一些接收资料处理的间题,谢谢
36F:→ yyc1217: 用网址带参数的方式测试$_GET能否取值(query parameter) 10/22 12:53
37F:→ yyc1217: 用$_POST的话要注意虽然method都是post 但ajax跟html for 10/22 12:56
38F:→ yyc1217: m submit出去的request格式不一样 10/22 12:56
39F:→ yyc1217: 不过记得laravel已针对这点处理过了 10/22 12:56
嗯~谢谢,最後有找到问题了~ssccg大的解答
40F:推 OriginStar: 问题解决了吗,没用过Laravel,查了一下网路资料 10/22 13:09
41F:→ OriginStar: web.php只有Route::post('/citylinkarea' 10/22 13:10
42F:→ OriginStar: 所以用get method拒绝是合理的吧 10/22 13:11
43F:→ OriginStar: 另外Laravel官方文件说会以json array的方式回覆 10/22 13:12
44F:→ OriginStar: AddressController.php写死的范例看来是json array 10/22 13:14
45F:→ OriginStar: 从DB捞的部分原PO自行确认有没有转换 10/22 13:14
46F:推 OriginStar: 应该说data是array回覆的话,content-type会自动是 10/22 13:33
47F:→ OriginStar: application/json,不用自己处理,其端才能正确解析 10/22 13:34
解决了~配合您和ssccg大的解答已弄出来T T 谢谢您
48F:→ ssccg: 首先你的ajax的request的ontent-type要设成json 10/22 14:45
49F:→ ssccg: $.ajax的dataType是预期response的type (Accept header) 10/22 14:48
50F:→ ssccg: 要用contentType: 'application/json' 10/22 14:49
51F:→ ssccg: 然後同上面有人提过的,要看实际送出的HTTP request,要看 10/22 14:56
52F:→ ssccg: 浏览器开发者工具的Network那页 10/22 14:57
53F:→ ssccg: 会发现照你的$.ajax写法,送出的Content-Type是application 10/22 14:58
54F:→ ssccg: /x-www-form-urlencoded,Body的内容是JSON没错,但是在这 10/22 14:58
55F:→ ssccg: 种Content-Type下body的格式是key1=value1&key2=value2... 10/22 14:59
56F:→ ssccg: 会解析成整个JSON字串是key对应到空白value 10/22 15:00
57F:→ ssccg: 是说我不确定你最早的版本长怎样,以现在的来说其实没必要 10/22 15:27
58F:→ ssccg: Request用json(不要JSON.stringfy),预设的方式就好 10/22 15:34
感谢ssccg大~问题确实出在应该用contentType: 'application/json' 我最一开始版本是用dataType: "JSON",不过当时一样没有用 我放上去的是弄一段时间休息就传上去的 目前连动已经可以了~谢谢~ 感谢上面各位的帮忙!!也让我多学到不少,为了这个弄了好多天QQ~ ※ 编辑: firetim (36.235.51.151 台湾), 10/23/2020 01:55:18 ※ 编辑: firetim (36.235.51.151 台湾), 10/23/2020 01:58:16







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:iOS站内搜寻

TOP