从XMLHttpRequest responseText

时间:2016-03-09 07:59:56

标签: javascript ajax xmlhttprequest

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

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

console.log(obj)返回:

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

响应

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

responseText的

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

console.log(obj.responseText)返回:

(an empty string)

有没有办法操纵这些数据?我尝试了一些像JSON.parse这样的东西,但似乎没有任何工作,任何帮助将不胜感激。 感谢

4 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

由于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);
});

答案 2 :(得分:0)

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

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

答案 3 :(得分:0)

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

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

    }});