错误:未定义响应
Error: response is not defined
请参阅下面的代码。我得到以下错误:
错误:未定义响应,这种情况发生在中
distanceInput.value = response.routes[0].legs[0].distance.value;
我找了很久了,有人能帮我吗?提前感谢
距离计算器
<style type="text/css">
#map_canvas
{ height: 100px;
}
</style>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no"/>
<script type="text/javascript" src="http://maps.google.com/maps/api/js?&sensor=false"></script>
<script type="text/javascript">
var directionDisplay;
var map;
function initialize() {
directionsDisplay = new google.maps.DirectionsRenderer();
var melbourne = new google.maps.LatLng(-37.813187, 144.96298);
var myOptions = {
zoom:12,
mapTypeId: google.maps.MapTypeId.ROADMAP,
center: melbourne
}
map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
directionsDisplay.setMap(map);
}
var directionsService = new google.maps.DirectionsService();
function calcRoute() {
var start = document.getElementById("start").value;
var end = document.getElementById("end").value;
var request = {
origin:start,
destination:end,
travelMode:google.maps.DirectionsTravelMode.DRIVING
};
directionsService.route(request, function(response, status) {
if (status == google.maps.DirectionsStatus.OK) {
directionsDisplay.setDirections(response);
}
});
var distanceInput = document.getElementById("distance");
distanceInput.value = response.routes[0].legs[0].distance.value;
}
</script>
</head>
<body onload="initialize()">
<div>
<p>
<label for="start">Start: </label>
<input type="text" name="start" id="start" />
<label for="end">End: </label>
<input type="text" name="end" id="end" />
<input type="submit" value="Calculate Route" onclick="calcRoute()" />
</p>
<p>
<label for="distance">Distance (km): </label>
<input type="text" name="distance" id="distance"/>
</p>
</div>
<div id="map_canvas"></div>
</body>
response
在回调被调用之前不会存在,所以尝试在directionsService.route
的回调中设置它,比如:
...
directionsService.route(request, function(response, status) {
if (status == google.maps.DirectionsStatus.OK) {
directionsDisplay.setDirections(response);
var distanceInput = document.getElementById("distance");
distanceInput.value = response.routes[0].legs[0].distance.value;
}
});
...
因为response
超出范围。因此,您必须移动到directionsService.route
方法内部。
directionsService.route(request, function(response, status) {
if (status == google.maps.DirectionsStatus.OK) {
directionsDisplay.setDirections(response);
var distanceInput = document.getElementById("distance");
distanceInput.value = response.routes[0].legs[0].distance.value;
}
});
JSFiddle
相关文章:
- 页面加载时未定义的 ajax 响应
- 使用 RESTful API,如果未定义特定的响应 json 级别,我如何在客户端不出错
- Cordova嵌入式网络视图未响应navigator.camera未定义
- 如何在未定义类时从 AJAX 响应中获取锚标记值
- Angular ReferenceError:未定义响应
- ember dev fixes错误:“;断言失败:findAll的响应必须是数组,而不是未定义的“”;
- 无法调用方法'发送'express js中未定义的(响应未定义)
- 错误:未定义响应
- JSON响应一直未定义(ajax文件上传)
- AngularJS HTTP 资源 - 响应函数未定义
- 值是未定义的,直到响应出现在 AngularJS 中
- FB.api 响应未定义
- 角度“响应未定义”时尝试为资源实现全局错误处理程序
- JQuery AJAX 响应未定义
- 为什么对象响应未定义
- 向节点发送ajax get请求,响应未定义
- AngularJS拦截器ResponseError响应未定义
- 来自PHP的Jquery ajax响应未定义
- 响应未定义/到达太晚- Facebook API FB.api
- Ajax响应未定义或奇怪