对.php文件的AJAX请求返回空字符串
第一:我不熟悉AJAX,只知道一些关于PHP的基本知识 我想在.php文件中发布一个AJAX。为此,我获得了以下代码:对.php文件的AJAX请求返回空字符串,php,ajax,Php,Ajax,第一:我不熟悉AJAX,只知道一些关于PHP的基本知识 我想在.php文件中发布一个AJAX。为此,我获得了以下代码: var lat = results[0].geometry.location.lat(); var lng = results[0].geometry.location.lng(); $.ajax({ url: 'http://api.geonames.org/findNearbyPostalCodes', type: 'GET', data: {la
var lat = results[0].geometry.location.lat();
var lng = results[0].geometry.location.lng();
$.ajax({
url: 'http://api.geonames.org/findNearbyPostalCodes',
type: 'GET',
data: {lat: lat, lng: lng, radius: 20, maxRows: 100, country: 'CH', username: 'bbag8274'},
success: function(scriptData, textStatus, jqXHR){
$.ajax({
url: 'privatkunden_data.php',
type: 'POST',
data: {xmldata: jqXHR.responseText, address: $('#address').val()},
success: function(secondScriptData, textStatus, jqXHR){
alert('suc');
},
error: function(jqXHR, textStatus, errorThrown){
alert(jqXHR.responseText);
}
});
},
error: function(jqXHR, textStatus, errorThrown){
alert('fail');
}
});
如果第一个post成功,它将执行第二个post。但是第二个执行错误:函数。这是我的.php文件:
$xmlroot = $_POST['xmldata'];
$doc = new DOMDocument;
$doc->loadXML($xmlroot);
foreach($doc->getElementsByTagName('postalcode') as $postalcode){
$zipcodes = $postalcode->nodeValue . " ";
}
问题是:AJAXpost返回一个空警报框(alert(jqXHR.responseText);
),而.php文件返回一个错误:
**PHP Warning: DOMDocument::loadXML(): Empty string supplied as input**
所以错误表明我的$xmlroot
变量为空,对吗?如果是,为什么是空的?它应该用xmldata
中的信息填写
欢迎提出建议
提前感谢您是否可以在执行GET请求时指定POST参数 更改URL,如
http://api.geonames.org/findNearbyPostalCodes?lat=47&lng=9&username=demo
…并读取:第一个ajax调用中的数据即将正确调用。尝试将数据类型设置为文本,并在PHP上将此文本转换为xml
dataType: 'text'
例如:
$.ajax({
url: 'http://api.geonames.org/findNearbyPostalCodes',
type: 'get',
dataType: 'text',
data: {lat: '47.644200', lng: '9.180260', radius: 20, maxRows: 100, country: 'CH', username: 'bbag8274'},
success: function(result){
alert(result)
}
});
实例:除非使用jsonp,否则无法对非当前域执行ajax请求。看看维基百科上的文章,我不知道你到底是什么意思。我不能这样做?谢谢你的链接,我会检查它什么是lat和lng?我的意思是。给出lat和lng的实际价值。这样测试会更容易。lat和lng是一些坐标。例如,您可以使用
lat=47.644200
和lng=9.180260
,如果我使用GET,我拥有data:{}
函数中的所有参数,如果我使用POST,我拥有url:
函数中的所有参数。我用什么都不重要。唯一的区别是,使用GET时,用户将看到url,而使用POST时,用户将看不到url。还是说我完全错了好啊对不起,你是对的。但数据行中还有一些不正确的地方。它不应该读取数据:{“lat”:47.644200,“lng”:9.18026,“radius”:20,“maxRows”:100,“country”:“CH”,“username”:“bbag8274”},是的,这就是它读取的数据。这是成功的,但第二篇文章并不成功。因为在第二篇AJAX文章中,它执行了error函数,而不是success函数,这没有帮助:/I如果我添加了数据类型,它就不会再加载了。那么我的代码中还有其他错误。我会再看一次,并尝试修复它。这个答案是一个代码的正确答案,该代码在更改后可以工作,请尝试在PHP上转换XML