我正在使用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这样的东西,但似乎没有任何工作,任何帮助将不胜感激。 感谢
答案 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;
}});