对php curl的Ajax调用产生未定义的

对php curl的Ajax调用产生未定义的,php,html,jquery,ajax,php-curl,Php,Html,Jquery,Ajax,Php Curl,Api: 文件:index.html-simple 2 input#lat for&lng=和#lng for&lng=按钮用于ajax运行对findnearbyplacename.php的post请求 script.js:带有2个数据字段的ajax post调用 $('#btnRun')。单击(函数(){ //警惕(“你好”); lat=$('lat').val(); lng=$('lng').val(); $.ajax( { 方法:“张贴”, url:“libs/php/findnearb

Api:

文件:index.html-simple 2 input#lat for&lng=和#lng for&lng=按钮用于ajax运行对findnearbyplacename.php的post请求

script.js:带有2个数据字段的ajax post调用

$('#btnRun')。单击(函数(){
//警惕(“你好”);
lat=$('lat').val();
lng=$('lng').val();
$.ajax(
{
方法:“张贴”,
url:“libs/php/findnearbyplacename.php”,
数据:{
lat:$('#lat').val(),
液化天然气:$('#lng').val(),
},
成功:功能(结果){
log(结果['data']);
$('#div1').html(结果['data'][0]['distance'])
},
错误:函数(jqXHR、textStatus、errorshown){
//错误代码
log(“我们已到达错误”);
控制台日志(lat、lng);
}
});
});

查找附近的地名
跑

console.log($('lat').val())
您的问题源于发送到GeoNames API的
lat
参数中缺少的
=

$url = 'http://api.geonames.org/findNearbyPlaceNameJSON?formatted=true&lat'.$lat.'&lng='. $lng.'&username=sherazzi403&style=full';
                                                                                ^ 
                                                                           = missing here
使用浏览器调试工具的“网络”选项卡,您将看到API返回的响应只包含一条简单消息:缺少参数。添加
=
并返回正确的结果

由于您没有得到预期的响应,因此您要查找的密钥不存在,因此出现
undefined
消息。您应该在这里添加一些错误检查

另外,正如注释中所指出的,在几个jQuery调用中缺少了一个前导的
#
,但这不会影响结果,因为在重要的地方它是正确的


数据
对象中还有一个尾随逗号(
),但这并不困扰Firefox。

我们可以猜测服务器端会发生什么(比如PHP)请阅读并编辑相应的问题。为什么代码在控制台中产生未定义?我使用的是xampp,当我运行代码时,它只为2个输入产生未定义的未定义,那么是什么导致了这个问题,我如何解决它?对于未定义,确保您正在使用jquery选择器获取元素id。ajax的
数据
部分在
lng
引用之后有一个零散的
。(检查浏览器控制台以检查javascript错误,巧合的是,那里的网络选项卡也可用于检查ajax请求)