responseText总是返回'undefined',即使我使用异步'成功'触发器

时间:2013-10-15 14:42:15

标签: ajax jquery

function WyslijRequestAjaxem(){         
            var pole1 = document.getElementById("data_albo_czas");
            var url1 = "date_time_now.php";         
            alert(pole1.value);
            alert("xd");
                $.ajax({
                    url: url1,
                    type: "get",
                    dataType: "html",
                    data: { zmienna: pole1.value},
                    success: OdbierzResponse                            
                })
        }

        function OdbierzResponse(response) {
            var p = document.getElementById("pt1");             
            p.innerHTML = response.responseText;
        }

2 个答案:

答案 0 :(得分:3)

对于jQuery的AJAX函数的html dataType,传递给success回调的第一个参数是responseText,因此将函数更改为:

function OdbierzResponse(response) {
    var p = document.getElementById("pt1");             
    p.innerHTML = response;
}

正如docs中所解释的,这个函数传递了三个参数:

  

该函数传递三个参数:从服务器返回的数据,根据dataType参数格式化;描述状态的字符串;和jqXHR(在jQuery 1.4.x,XMLHttpRequest中)对象。

如果您需要使用实际的jqXhr对象,则需要执行以下操作:

function OdbierzResponse(response, status, xhr) {
    var p = document.getElementById("pt1");             
    p.innerHTML = response;
    ...
}

并使用xhr访问您需要的属性或方法。

答案 1 :(得分:0)

function WyslijRequestAjaxem() {
    var pole1 = document.getElementById("data_albo_czas");
    var url1 = "date_time_now.php";
    alert(pole1.value);
    alert("xd");
    $.ajax({
        url: url1,
        type: "get",
        dataType: "html",
        data: {
            zmienna: pole1.value
        },
        success: function (response) {
            OdbierzResponse(response); // call OdbierzResponse function with parameter here
        }
    })
}

尝试更改

p.innerHTML = response.responseText;

p.innerHTML = response;