【发布时间】: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回调并检查textStatus和errorThrown(第二个和第三个参数)。 -
@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。这是否与您直接请求时使用的地址匹配?