作者firetim (firetim)
看板Ajax
标题Fw: [请益] Ajax传值到後端问题
时间Thu Oct 22 05:16:37 2020
※ [本文转录自 Soft_Job 看板 #1Va5PC6Q ]
作者: firetim (firetim) 看板: Soft_Job
标题: [请益] Ajax传值到後端问题
时间: Wed Oct 21 23:39:53 2020
各位大神好:
这两天自己用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
中文的版本停在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
※ 发信站: 批踢踢实业坊(ptt.cc)
※ 转录者: firetim (223.141.58.17 台湾), 10/22/2020 05:16:37