ajax - 发布到页面并获取以xml格式返回的内容

时间:2014-10-02 20:46:13

标签: jquery ajax xml

我正在尝试使用Ajax帖子在选择国家/地区时从xml返回省份列表。

这是我收到的错误消息:

enter image description here

xml似乎没问题 - 错误消息显示选择国家/地区时的正确状态/省份,但由于某种原因它出错,我无法使用成功回调函数。 我相信我应该在我的php中回应xml响应,并且$(document).ready函数应该包含ajaxError处理函数,但是我无法在成功回调中提醒我的省/州列表。有谁知道我在这里缺少什么?

HTML

<select name="aff_country" onChange="loadStates(this.value);">
  <option value="Select Me">Select Me</option>
</select>

的Javascript

$(document).ready(function() {
    $(document).ajaxError(function(e,xhr,settings,exception) { 
        alert('Error Page: ' + settings.url + '\n\n'+'Error Message:\n' + xhr.responseText ); 
    });
});

function loadStates(country_value) {
    $.post("/states.php", {con_name: country_value}, function(data) {
       console.log(data);
    },"xml");
 }

XML(PHP)

<?
$request_obj = new Request();
$request_obj->flds = $_REQUEST;

$states = array();
$states = $country_bus_obj->states($request_obj,$_CONFIG);

$xml .= "<?xml version=\"1.0\" encoding=\"UTF-8\"?>";
$xml .= "<response>";
$xml .= "<status>" . $status . "</status>";
$xml .= "<message>" . $trans->msg . "</message>";
$xml .= "<states>";
foreach ($states as $item) {
  $xml .= "<state>";
  $xml .= "<name>" . $item['sta_name'] . "</name>";
  $xml .= "</state>";
}
$xml .= "</states>";
$xml .= "</response>";

header('Content-type: text/xml');
header('Cache-Control: no-cache');
echo $xml;
?>

1 个答案:

答案 0 :(得分:0)

如果有人遇到同样的问题......我通过删除包含的php文件底部的所有换行符解决了这个问题。