2

我在做什么

我正在构建对服务的查询。我使用 ajax 查询服务并获得 JSON 响应。

我正在查询 Google 地图 API 服务。反向地理编码

这是一个示例查询:

http://maps.googleapis.com/maps/api/geocode/json?latlng=40.714224,-73.961452&sensor=false

可以看到查询参数是latlng, 和sensor

latlng查询参数中有逗号。

让我们看一些代码

// Some vars
var googleEndpoint = "http://maps.googleapis.com/maps/api/geocode/json";

// Bind handler to form submission
$('#theQuery').submit(function() {
    var lat = $("#lat").val();
    var _long = $("#long").val();

    // Construct Query
    $.get(googleEndpoint, { sensor: true, latlong: lat + ',' + _long }, function (data) {
            console.log(data);
        });
    return false;
});

如果我运行查询,我的查询如下所示:

http://maps.googleapis.com/maps/api/geocode/json?sensor=true&latlong=44%2C44

我的想法

你可以看到逗号是一个%2C。我知道这是由于encodeURIComponent在 jquery 构建查询字符串时调用了参数,但我不知道如何标记该逗号以便它不会被编码。我试过了unescape()

我知道我在这里遗漏了一些东西,有什么帮助吗?

4

2 回答 2

2

你可以尝试使用

编码URI()

它不会转义逗号

于 2013-06-06T23:30:27.510 回答
0
$.ajax({
        type: "GET",
        url: "https://maps.googleapis.com/maps/api/elevation/json",
        contentType: "text/plain; charset=UTF-8",
        data:
            "path=36.578581,-118.291994&samples=3"
    });

我的代码运行良好,希望对您有所帮助!

https://maps.googleapis.com/maps/api/elevation/json?path=36.578581,-118.291994|36.23998,-116.83171&samples=3&key=YOUR_API_KEY
于 2016-06-09T13:06:21.523 回答