1

这是我的 .ajax() 调用代码:

    $.ajax({
      type: "POST",
      url: "http://ws.geonames.org/searchJSON",
      dataType: "jsonp",
      data: {
        featureClass: "P",
        style: "full",
        maxRows: 12,
        name_startsWith: request.term
      }

除了type:"POST"如上使用外,我还尝试$.ajaxSetup({type: "post"});在此代码块上方使用。

在这两种情况下,data键中的值都被附加到 URL 中。我想要一个没有参数的干净 URL。这段代码实际上是自动完成字段的一部分,它被包装到一个匿名函数中,并source像主要的 jQueryUI 示例一样给定一个键。

注意实际的 URL 无关紧要,我不知道 geonames 是否支持 POST 请求,但稍后会更改,这只是一个示例。

4

2 回答 2

3

只需像这样添加您的参数:

url: "http://ws.geonames.org/searchJSON/" + param,

如果你想强制 POST,你可以试试jQuery.post()

于 2012-07-08T00:45:27.510 回答
2

无法使用 JSONP 数据类型发出 POST 请求。

JSONP 通过创建<script>从不同域执行 Javascript 的标签来工作,无法使用<script>标签发送 POST 请求。

如果您指定dataType: "jsonp"and type: "POST",则“jsonp”优先并作为“GET”请求发送(“POST”被忽略)。

于 2012-07-08T01:11:15.917 回答