在 jQuery $.ajax 中读取 Laravel JSON 响应

Posted

技术标签:

【中文标题】在 jQuery $.ajax 中读取 Laravel JSON 响应【英文标题】:Reading Laravel JSON response in jQuery $.ajax 【发布时间】:2014-09-09 10:14:54 【问题描述】:

我在阅读 Laravel 的 json 响应时遇到了奇怪的问题。这是我的代码:

    $.ajax(
        url: 'getallpoints',
        type: 'get',
        dataType: 'json',
        success: function(r)

            var lat = r.lat;
            var lng = r.lng;
            var status = r.status;

            var marker = new google.maps.Marker(
                position: new google.maps.LatLng(lat,lng),
                map: map
            );
        
    );

这是我的 Laravel 代码

在 routes.php

Route::get('/getallpoints', 'PointController@getallpoints');

在 PointController.php 中

class PointController extends BaseController 

public function getAllPoints()

    return Point::all();


我对这些没有定义:

var lat = r.lat;
var lng = r.lng;

我也试过Response::json(Point::all()),但同样的错误。

【问题讨论】:

请考虑阅读此***.com/questions/15602129/… @delmadord 我已经检查过了,尝试了所有可能性。看起来 Laravel 返回 json 数据,可以在 firebug 中看到,但 javascript 有问题。我什至使用了 $.parseJSON 但没有用 【参考方案1】:

return Point::all(); 将返回一个数据数组,而不是一个点,因此您必须在 success 回调中遍历该数据:

...
success: function(data)
    for (var i = 0; i < data.length; i++) 
        var r = data[i];
        ...
    

...

【讨论】:

感谢 Kestutis,你让我开心 完全没问题。在使用 API 时,我发现首先使用 Postman 对其进行测试非常有用,然后才在 JavaScript 中处理响应

以上是关于在 jQuery $.ajax 中读取 Laravel JSON 响应的主要内容,如果未能解决你的问题,请参考以下文章

使用Jquery时无法读取数据库,Ajax提交表单而不刷新页面

使用jQuery AJAX读取二进制数据

jQuery AJAX处理二进制数据(例:读取图片)

jQuery ajax读取本地json文件

错误:通过 ajax jquery 加载数据时无法读取未定义的属性“样式”

jQuery ajax读取本地json文件