【问题标题】:jquery.ajax() using json data from mysqljquery.ajax() 使用来自 mysql 的 json 数据
【发布时间】:2014-08-25 15:31:42
【问题描述】:

我有一个创建 json 数据并对其进行编码的页面。如果我转到该页面,输出如下所示:

{"hail":
    [
        {"date":"140714","time":"1646","size":"100","city":"3 ESE HOUSTONIA","county":"PETTIS","state":"MO","lat":"38.88","lon":"-93.31","other":"(EAX)"},
        {"date":"140714","time":"1649","size":"100","city":"HUGHESVILLE","county":"PETTIS","state":"MO","lat":"38.84","lon":"-93.3","other":"US POSTAL WORKER WITH A QUARTER SIZED HAIL REPORT. (EAX)"},
        {"date":"140714","time":"1742","size":"175","city":"7 NNE COOLIDGE","county":"HAMILTON","state":"KS","lat":"38.14","lon":"-101.96","other":"(DDC)"}
    ]

然后我尝试使用

function addMarker(){
    alert("success 1");
    var infowindow =  new google.maps.InfoWindow({
            content: ''
        });

        jQuery.ajax({
            url : '/data/hail',
            dataType : 'json',
            success : function(response) {
                alert("SUCCESS");

                    hail = response.hail;

                    // loop through places and add markers
                    for (h in hail) {

                        //create gmap latlng obj
                        tmpLatLng = new google.maps.LatLng( hail[h].lat, hail[h].lon);

                        // make and place map maker.
                        var marker = new google.maps.Marker({
                            map: map,
                            position: tmpLatLng,
                            title : hail[h].city
                        });

                        // not currently used but good to keep track of markers
                        markers.push(marker);

                    }

                }
        })

    setAllMap(map);
}

第一个警报响起,但永远不会调用第二个警报。我的主索引页面上有 jquery 的包含

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>

【问题讨论】:

  • 如果alert("SUCCESS"); 没有出现,则请求不成功。这可能意味着像500 这样的意外响应状态代码,或者 jQuery 在解析完整响应时出现问题。是否有任何错误记录到控制台?请求在网络下是否显示成功?尝试添加一个error 回调并检查textStatuserrorThrown(第二个和第三个参数)。
  • @Jonathan Lonowski 我只是没有发布所有输出。只是前几行。它有最后一个括号。我现在正在检查错误
  • @Jonathan Lonowski 使用 firefox 我看到它显示对页面的请求很糟糕,给我一个 404 错误。使用请求方法获取。我只是从页面中回显这样的数据:echo json_encode($data);
  • @Jonathan Lonowski 看起来内容类型错误。 Firefox 显示内容类型为 html,脚本正在寻找 JSON
  • 404 状态意味着url : '/data/hail' 不正确。 text/html 类型可能只是由于服务器提供了默认错误页面。发出此请求的页面和hail 资源是否都托管在同一域和端口上?网络下的请求详细信息可能会显示与/data/hail 一起使用的完整 URL。这是否与您直接请求时使用的地址匹配?

标签: jquery mysql ajax json


【解决方案1】:

也许是线条

var infowindow =  new google.maps.InfoWindow({
        content: ''
    });

给出一个错误。浏览器控制台一定有错误。

Ajax 调用是正确的。

【讨论】:

  • 如果我在信息窗口之后移动第一个警报,它仍然会加载。 json 调用中没有加载任何内容。 Firefox 显示我的数据页面返回了错误的内容类型
  • 另外,如果我在 json 调用之后发出警报,它也可以工作。它必须在 Ajax 调用中
  • @shinjuo - 你是对的。那样的话,肯定是json数据的格式不对。您可以尝试在jsonlint.com 处验证数据?
猜你喜欢
  • 2013-03-09
  • 2017-12-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-03-07
  • 1970-01-01
相关资源
最近更新 更多