首先:我是 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: {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');
}
});
如果第一篇文章成功,则执行第二篇文章。但第二个执行错误:功能。这是我的 .php 文件:
$xmlroot = $_POST['xmldata'];
$doc = new DOMDocument;
$doc->loadXML($xmlroot);
foreach($doc->getElementsByTagName('postalcode') as $postalcode){
$zipcodes = $postalcode->nodeValue . " ";
}
问题是: AJAX 帖子返回空警告框(alert(jqXHR.responseText);
), .php 文件返回错误:
**PHP Warning: DOMDocument::loadXML(): Empty string supplied as input**
所以错误说我的$xmlroot
变量是空的,我是对的吗?如果是,为什么它是空的?它应该填入xmldata
的信息。
建议表示赞赏
提前致谢
答案 0 :(得分:1)
是否可以指定POST参数,尽管您执行了GET请求?
更改
之类的网址http://api.geonames.org/findNearbyPostalCodes?lat=47&lng=9&username=demo
答案 1 :(得分:1)
第一次ajax调用中的数据正确。尝试将dataType作为文本并将此文本转换为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)
}
});