0

我有来自示例站点的代码,但我想知道是否有人可以告诉我如何修改下面的代码以仅返回来自美国的结果。

这是我到目前为止的代码:

  $(function() {
    function log( message ) {
      $( "<div>" ).text( message ).prependTo( "#log" );
      $( "#log" ).scrollTop( 0 );
    }

    $( "#city" ).autocomplete({
      source: function( request, response ) {
        $.ajax({
          url: "http://ws.geonames.org/searchJSON",
          dataType: "jsonp",
          data: {
            featureClass: "P",
            style: "full",
            maxRows: 12,
            name_startsWith: request.term
          },
          success: function( data ) {
            response( $.map( data.geonames, function( item ) {
              return {
                label: item.name + (item.adminName1 ? ", " + item.adminName1 : "") + ", " + item.countryName,
                value: item.name
              }
            }));
          }
        });
      },
      minLength: 2,
      select: function( event, ui ) {
        log( ui.item ?
          "Selected: " + ui.item.label :
          "Nothing selected, input was " + this.value);
      },
      open: function() {
        $( this ).removeClass( "ui-corner-all" ).addClass( "ui-corner-top" );
      },
      close: function() {
        $( this ).removeClass( "ui-corner-top" ).addClass( "ui-corner-all" );
      }
    });
  });

显然你可以像这样请求 JSON:

http://ws.geonames.org/searchJSON?name_startsWith=Chic&country=US

所以我的问题是,如何修改上面的代码以在请求中包含“&country=US”。我已经尝试了一些事情,但它完全破坏了请求。

4

1 回答 1

2

将国家参数放在数据变量上:

      data: {
        featureClass: "P",
        style: "full",
        maxRows: 12,
        name_startsWith: request.term,
        country: "US"
      },

就这么简单!

本例中的 data 变量用于构建 Ajax 请求的查询字符串。

于 2013-06-21T13:48:14.813 回答