Javascript ajax请求成功时不显示数据

Javascript ajax请求成功时不显示数据,javascript,json,laravel,leaflet,Javascript,Json,Laravel,Leaflet,在Laravel,我有一个控制器: 公共函数getData() { $data=Bencana::all()->pull('coord'); 答复(数据); } 这是从我的数据库和我的JS加载数据的代码,如下所示: $.ajax({ 类型:“POST”, url:“{route('getdata')}}”, 标题:{'X-CSRF-TOKEN':“{{{CSRF_TOKEN()}}}”, 数据类型:“json”, 成功:功能(响应){ //控制台日志(响应); var layer=L.geoJ

在Laravel,我有一个控制器:

公共函数getData()
{
$data=Bencana::all()->pull('coord');
答复(数据);
}
这是从我的数据库和我的JS加载数据的代码,如下所示:

$.ajax({
类型:“POST”,
url:“{route('getdata')}}”,
标题:{'X-CSRF-TOKEN':“{{{CSRF_TOKEN()}}}”,
数据类型:“json”,
成功:功能(响应){
//控制台日志(响应);
var layer=L.geoJson(响应{
风格:myStyle
}).addTo(地图);
}
});
该请求没有在我的地图上显示圆、点、多边形数据。我被困在这里了

谁能告诉我下一步该怎么办

编辑:控制台中没有错误,但我的数据库有不同的输出

{type:manythings,other:{}
我将带有json类型的坐标保存到我的表中。当我尝试返回地图时,控制台显示:

{\type : \"somelikethat", \another :\"{}}

如果在ajax中设置
dataType:'json'
,则必须在控制器中使用
return response()->json($data)


如果要为数据设置一个键,可以尝试以下操作:
returnresponse()->json(['data'=>$data])

正如建议的那样,我可能会建议从控制器返回
JsonResponse
,不过,如果您返回的是数组,它应该已经转换为json。 所以我要改变的第一件事是控制器响应:

use Illuminate\Http\JsonResponse;

public function getData()
{
    $data = Bencana::all()->pluck('coord');

    return new JsonResponse($data);
}
接下来要检查的是实际需要传递给
geoJson
方法的内容。我想说清楚,你在用什么

如果是这样的话,在登录页上有一个json结构的示例,您需要传入,尽管我相信您已经知道了。只需将您从控制器发送的响应与推荐的结构进行比较——可能存在一些问题

通过查看他们的示例,您需要json对象的
type
geometry
属性

{
    "type": "Feature",
    "geometry": {
        "type": "Point",
        "coordinates": [125.6, 10.1]
    },
    "properties": {
        "name": "Dinagat Islands"
    }
}

很抱歉,如果这些事情听起来很明显,但有时重复检查会有所帮助。

您能尝试一下
响应。数据
?@Rolf OP使用的是jQuery,而不是axios。控制台.log(响应)
显示什么?啊,好的!有一段时间没有使用jQuery;)您是否收到任何控制台错误?当代码运行时,
L
map
是否已正确设置?