为什么即使使用回调,Ajax也不会返回值

时间:2011-12-09 12:44:09

标签: ajax

Ajax永远不会返回值。我已经尝试设置async:false选项,并尝试设置回调函数,它仍然永远不会返回值。当我使用firefox浏览到url时,我看到了预期的响应,但是当我通过ajax发出请求时,没有响应。 Firebug也证实了这一点。

我已经尝试了很多我找到的代码示例,但它们永远不会返回值。我也尝试过使用不同版本的jquery和其他浏览器。

有谁知道什么可能是错的? 谢谢 下面是用户单击表单上的按钮时调用的代码。

function login() {
    var username = $("#uname").val();
    var password = $("#password").val();
    $.ajax({
        type: 'POST',
        url: 'http://localhost/mConnect/login.php',
        data: { username: username, password: password },
        async: false,
        success: function(html) {
            slim(html);
        }
    });
}

function slim(html) {
    // var data = $(xml).find("Status").text();
    alert(html.responseText);
}

下面是login.php,它只是打印静态xml

<?php  
    $array = array('stat'  => '1.0',
                    'mode'   => 'whatever',
                    'content' => 'All');

    $new ='<?xml version="1.0" encoding="iso-8859-1"?><response>';

    foreach($array as $key => $values) {
        $new .= "<$key>$values</$key>";
    }
    echo $new.'</response>';
?>

2 个答案:

答案 0 :(得分:0)

如果您发送了AJAX请求,则会收到回复。即使它是超时。因此,如果您根本没有回复,那么您很可能从未发送过请求。

答案 1 :(得分:0)

你有一个成功的回调,但没有失败的回调。沿途可能会发生一些失败,大约有100种可能性。在Firebug(或等效的)中运行它,看看请求会发生什么。 (我的钱:你当地的网络服务器根本没有回应。)