调用百度地图Web服务API,url正确且能用浏览器看到返回的数据,用js接收不到数据,求大神解释

FlyingBaby888 2015-01-21 08:39:49
通过百度地图web服务api获取起始点的所有经过的地点坐标,在处理返回数据的时候 xmlHttp.readyState == 4) if (xmlHttp.status 总是等于0,不是200,responseText为空前面readyState=4表示已经完成了,很不是理解求大神解释

//通过起始坐标来画路线图
function GetDataByApi() {
var startPoint = new BMap.Point(120.356545, 36.117578);
var endPoint = new BMap.Point(120.433583, 36.123175);
var data="mode=driving&origin=" + startPoint.lat + "," + startPoint.lng + "&destination=" + endPoint.lat + "," + endPoint.lng + "&origin_region=青岛&destination_region=青岛&output=json&ak=rLhTKL4CCeaVGGjs4zcSGajP";
var url = "http://api.map.baidu.com/direction/v1";
var surl=url+"?"+data;
var xmlHttp = new XMLHttpRequest();
xmlHttp.open("get", "http://api.map.baidu.com/direction/v1?mode=driving&origin=36.117578,120.356545&destination=36.123175,120.433583&origin_region=青岛&destination_region=青岛&output=json&ak=rLhTKL4CCeaVGGjs4zcSGajP", true);
xmlHttp.onreadystatechange=ShowResult;
xmlHttp.send(null);
//回调方法
function ShowResult() {
if (xmlHttp.readyState == 4) {
if (xmlHttp.status == 200 ) {
alert(xmlHttp.responseText);
}
}
}
...全文
593 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
泡泡鱼_ 2016-08-05
  • 打赏
  • 举报
回复
引用 3 楼 zqb683 的回复:
不是给你用ajax访问的 ? 用ajax不能访问么
1楼的朋友已经给出了答案了! 你要去搞明白这个API的正确调用方式,不是你想怎么来就怎么来的,去看下官方的API文档 经测试:当前地址不可使用jsonp,但get方式会输出一个js文件,你可以考虑使用代理。站内代理的方式估计你也不明白,给你说下思路吧 代理: 1:ajax改为请求自己站内的地址(比如:baidumapapi.aspx),但将这个api所需的参数全部传过去 2:在baidumapapi.aspx中根据ajax传递过来的参数,组装成百度地图的api请求地址,然后使用get方式去请求,并获取返回数据,然后输出 3:这时候ajax将不会因为跨域的安全策略而被阻止,可以正确的接收到数据
Jira.Galang 2016-08-05
  • 打赏
  • 举报
回复
哥们 这个问题后来是怎么解决 我现在碰到了同样的问题
KK3K2005 2015-01-21
  • 打赏
  • 举报
回复
不是给你用ajax访问的
slwsss 2015-01-21
  • 打赏
  • 举报
回复
跨域了,找下api 是否有jsonp接口 或者 用代理
FlyingBaby888 2015-01-21
  • 打赏
  • 举报
回复
不是给你用ajax访问的 ? 用ajax不能访问么

87,908

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧