从 XMLHttpRequest 获取数据 responseText

Getting data from XMLHttpRequest responseText

我正在使用 ajax 获取一些我想在 ajax 完成后使用的数据。但是我无法操纵响应 这是我的代码

function testAjax() {           
        direc = "controller.php";
        return $.ajax({url: direc});            
        }           
        var obj = testAjax(); 
        console.log(obj);           
        console.log(obj.responseText); 

console.log(obj) returns 这个:

 XMLHttpRequest { readyState=1,  timeout=0,  withCredentials=false,  more...}

回应

"[{"CLICREDIT_Cod":"1002","CLICREDIT_Credit":"2000","CLICREDIT_FlagEstad":"1"}]"

响应文本

"[{"CLICREDIT_Cod":"1002","CLICREDIT_Credit":"2000","CLICREDIT_FlagEstad":"1"}]"

console.log(obj.responseText) returns 这个:

(an empty string)

有没有办法操纵这些数据?我试过 JSON.parse 之类的东西,但似乎没有任何效果,我们将不胜感激。 谢谢

这是异步的,需要用到.done()函数。看看示例 here.

由于 ajax 是异步的,因此您必须使用:

promise.then( doneCallback, failCallback )

function testAjax() {
  direc = "controller.php";
  return $.ajax({
    url: direc
  });
}
var obj = testAjax();

obj.then(function(result) {
  console.log(result);
}, function(xhr, ajaxOptions, thrownError) {
  alert(xhr.status);
  alert(thrownError);
});

success后可以使用回调函数。浏览器不会等待响应并继续执行代码。所以当浏览器得到结果时,回调函数将会命中。

$.ajax({url: direc, success: doSmth});
function doSmth(data){
//do something with data
}

使用 success() 获取请求页面的响应

 var responseText={};
 $.ajax({url: 'controller.php',
    type:"POST",
    success: function(data)
   {
        responseText= data;

    }});