这是我的.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。 我想要一个没有参数的干净网址。这段代码实际上是自动填充字段的一部分,它包含在一个匿名函数中,并给出了一个像主jQueryUI示例的密钥source
。
注意实际的URL并不重要,我不知道geonames是否支持POST请求,但后来会改变,这只是一个例子。
答案 0 :(得分:3)
答案 1 :(得分:2)
无法使用JSONP数据类型发出POST请求。
JSONP的工作原理是创建一个<script>
标记,该标记从其他域执行Javascript,无法使用<script>
标记发送POST请求。
如果指定dataType: "jsonp"
和type: "POST"
,则“jsonp”会先于先例,并以“GET”请求的形式发送(“POST”会被忽略)。