javascript中的jquery ajax调用响应是空白的

时间:2014-02-11 15:55:05

标签: javascript jquery ajax

失败功能给我一个正确的输出,而完成功能给我空白。我坚持了好几个小时。关于如何调试它的任何想法?

var xhr = false;

if (window.XMLHttpRequest) {
    xhr = new XMLHttpRequest();
}
else if (window.ActiveXObject) {
    xhr = new ActiveXObject("Microsoft.XMLHTTP");
}

if (contentType == null) {
    contentType = "application/json";
}

var reqst = $.ajax({
        beforeSend : function(req) {
          req.setRequestHeader("Content-Type", "application/json");
        },
        url : url,
        type : "post",
        contentType : contentType,
        data : paramsTable,
        });

reqst.done(function(xhr){
alert(xhr.responseText);
});

reqst.fail(function(xhr){
alert(xhr.responseText);
});

2 个答案:

答案 0 :(得分:0)

尝试使用标准的jquery ajax结构:

$.ajax({
    url: "test.html",
    context: document.body
}).done(function() {
    $( this ).addClass( "done" );
})
.fail(function() {
    alert( "error" );
});

答案 1 :(得分:0)

我建议您使用Ajax jQuery API而不是旧的Ajax请求。今天没有人使用它(几乎没有人;因为你使用它)

$.ajax({
   beforeSend: function(req) {
     req.setRequestHeader("Content-Type", "application/json");
   },
   url: url,
   type: "post",
   contentType: contentType,
   data: paramsTable,
   success: function () {
     // here the code to execute if success
   },
   error: function () {
     // here the code to execute if error..
   }
});

为什么你的代码不能正常工作

因为您从未使用xhr发送Ajax请求,所以它没有任何内容可以显示为响应文本。好笑不是吗?呵呵呵。

使用它:

success: function(resp) {
  alert(resp); // where resp is the name of the responseText here..
}

我已经告诉你如何使用它。祝你好运!

更多信息:http://api.jquery.com/jquery.ajax/