在API调用中编码标点符号

时间:2014-01-17 18:37:16

标签: javascript jquery api

我正在使用JavaScript向房地产API发出请求。我发送了一个街道地址,它会向我发回有关该物业的信息。它适用于大多数地址。但是,它不适用于地址中包含句点的地址(街道=美国395),我想知道该标点符号是否将其丢弃,如果是,则如何正确编码。

// grab address from html
function getAddress() {
    address = $('.js-pma-address').val();
    address = $.trim(address);
    ...
    data(address, locale);
}


// compile data for API query
function data(address, locale) {
    dataObj.Key = ...;
    dataObj.Address = address;
    dataObj.LastLine = locale.toString();
    ...
    compileRequest(dataObj);
}

// create url for API request
function compileRequest(dataObj) {
    var request = 'http://rc.api.sitexdata.com/sitexapi/sitexapi.asmx/AddressSearch?';
    request += $.param(dataObj);
    runQueries(request);
}

// run api query 
function runQueries(request) {
    $.ajax({
    url: 'lp/proxy.php',
    data: {requrl: request + '&reportType=187'},
    dataType: 'xml'
    })

1 个答案:

答案 0 :(得分:3)

尝试使用encodeURIComponent() ...如果标点符号是罪魁祸首,那就应该纠正它。

// compile data for API query
function data(address, locale) {
    dataObj.Key = ...;
    dataObj.Address = encodeURIComponent(address);  // <-- Right here
    dataObj.LastLine = locale.toString();
    ...
    compileRequest(dataObj);
}