baidu_33614238 2016-02-28 11:36 采纳率: 0%
浏览 5009

JQuery可以跨域访问,但是回调函数却无法成功,具体目的:百度地图API地址查坐标

我要用百度地图API的一个功能,
要用的技术是JavaScript,
百度API文档链接是百度地图根据地址查询经纬度
我选取测试的具体API为http://api.map.baidu.com/geocoder/v2/?address=北京市海淀区上地十街10号&output=json&ak=E4805d16520de693a3fe707cdc962045&callback=showLocation
浏览器直接打进去的效果图是图片说明

最后JS调试效果图是图片说明
当时返回的数据是data = Object {readyState: 4, status: 200, statusText: "success"}
这说明跨域访问是可以的,但是回调方法总是走到error块,我预期是走到success块,找不到原因,我更怀疑是百度的问题,大家懂得帮忙看看问题在哪里,我最终是有几十个地址需要查询出经纬度,然后自动标注到地图上,后边都调试好了,就缺经纬度自动获取了,不希望换技术实现,毕竟都搞差不多了

我用的HTML代码是,改好JQuery路径就可以可以自己黏贴测试,可以运行,

 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="UTF-8">
<title>百度地图API显示多个标注点带提示的代码</title>
<script src="scripts/jquery-1.7.2.min.js" type="text/javascript"></script>
</head>
<body>
    <div class="demo_main">
        <fieldset class="demo_title">百度地图API显示多个标注点带提示的代码</fieldset>
        <fieldset class="demo_content">
            <div style="min-height: 300px; width: 100%;" id="map"></div>
            <script type="text/javascript">
                $(function() {
                    $.ajax({
                        "async" : "false",
                        "url" : "http://api.map.baidu.com/geocoder/v2/",
                        "type" : "GET",
                        "dataType" : "jsonp",
                        "jsonpCallback" : "showLocation",
                        "timeout" : "5000",
                        "contentType" : "application/json;utf-8",
                        "data" : null,
                        "data" : {
                            "address":"北京市海淀区上地十街10号",
                            "output":"json",
                            "ak":"E4805d16520de693a3fe707cdc962045",
                            "callback":"showLocation"
                        },
                        "success" : function(data) {
                            alert(data);
                        },
                        "error" : function(data) {
                            alert(data);
                        }
                    });
                });
            </script>
        </fieldset>
    </div>
</body>
</html>

  • 写回答

5条回答 默认 最新

  • tony4geek 2016-02-29 00:51
    关注

    "dataType" : "jsonp", 这个代表会生成对应js 方法,但是你的http://api.map.baidu.com/geocoder/v2/ 不是有效的jsonp 的形式。

    参考http://blog.csdn.net/caomiao2006/article/details/46868983
    必须是jsonpcallback({"Email":"zhww@outlook.com","Remark":"我来自遥远的东方"})

    这样的 jsonpcallback
    
    评论

报告相同问题?

悬赏问题

  • ¥15 用matlab 设计一个不动点迭代法求解非线性方程组的代码
  • ¥15 牛顿斯科特系数表表示
  • ¥15 arduino 步进电机
  • ¥20 程序进入HardFault_Handler
  • ¥15 oracle集群安装出bug
  • ¥15 关于#python#的问题:自动化测试
  • ¥20 问题请教!vue项目关于Nginx配置nonce安全策略的问题
  • ¥15 教务系统账号被盗号如何追溯设备
  • ¥20 delta降尺度方法,未来数据怎么降尺度
  • ¥15 c# 使用NPOI快速将datatable数据导入excel中指定sheet,要求快速高效