日期:2014-05-16  浏览次数:20763 次

百度地图Geocoding的使用
如何通过javascript来调用Geocoding功能,例如在一个html页面中通过ajax发出请求,然后获得返回的数据;

  我在一个页面中这样写的,为什么会出错呢?应该是怎么做才是正确的,请教?

 1 <script type="text/javascript">
 2       $(function () {
 3           $.ajax({
 4               type: "POST",
 5               url: "http://api.map.baidu.com",
 6               data: "geocoder?address=%BA%FE%C4%CF%CA%A1%B3%A4%C9%B3%CA%D0%CC%EC%D0%C4%C7%F8%C7%E0%D4%B0%C2%B7108%BA%C5&output=json&key=a8f937df907bf32f9750980ae9d4a2ef",
 7               success: function (msg) {
 8                   console.info(msg);
 9                   alert("Data Saved: " + msg);
10               }
11           });
12       });
13   </script>

为什么这样发出的ajax请求,是找不到页面?

------解决方案--------------------
引用:
1 <script type="text/javascript">
 2 $(function () {
 3 $.ajax({
 4 type: "POST",
 5 url: "http://api.map.baidu.com/geocoder",
 6 data: "address=%BA%FE%C4%CF%CA%A1%B3%A4%C9%B3%CA%D0%CC%EC%D0%C4%……

那应该怎么写呢?
------解决方案--------------------
凡是不在下表中的字符都要进行编码。
字符集合 字符
URL非保留字  a b c d e f g h i j k l m n o p q r s t u v w x y z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 0 1 2 3 4 5 6 7 8 9 - _ . ~
URL保留字  ! * ' ( ) ; : @ & = + $ , / ? % # [ ]

附注:

(1) javascript中一般采用encodeURIComponent函数对特殊字符进行编码。

(2) C#中可以使用函数URLEncoder.encode对特殊字符进行编码。

(3) Java中可以使用函数HttpUtility.UrlEncode对特殊字符进行编码。

(4) php中可以使用函数urlencode对特殊字符进行编码。