Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从ajax调用返回字符串而不是对象_Javascript_Jquery_Ajax - Fatal编程技术网

Javascript 从ajax调用返回字符串而不是对象

Javascript 从ajax调用返回字符串而不是对象,javascript,jquery,ajax,Javascript,Jquery,Ajax,我目前有一个ajax调用,它工作正常,可以获取所需的数据,但是当我需要返回字符串时,它以对象的形式返回数据。我不确定我到底做错了什么,但以下是我的代码: var pillid=drawpills(); pillid=pillid.toString(); alert(pillid); //output is [object Object] ajax方法是: function drawpills() { return $.post('js/fetchdata.php', function

我目前有一个ajax调用,它工作正常,可以获取所需的数据,但是当我需要返回字符串时,它以对象的形式返回数据。我不确定我到底做错了什么,但以下是我的代码:

var pillid=drawpills();
pillid=pillid.toString();
alert(pillid); //output is [object Object]
ajax方法是:

function drawpills() {
    return $.post('js/fetchdata.php', function (data) { 
    });
}
drawpills().done(function(data) {
    var clock = document.getElementById('clock');
    clock.innerHTML = "<img src='images/clock/pill.png' alt='pill_image' id='pillpic" + data + "'/>";
    var picid = "pillpic" + data;
    return data;
}).fail(function() {
    // an error occurred
});
函数drawpills(){
返回$.post('js/fetchdata.php',函数(数据){
});
}
drawpills().done(函数(数据){
var clock=document.getElementById('clock');
clock.innerHTML=“”;
var picid=“pillpic”+数据;
返回数据;
}).fail(函数(){
//发生了一个错误
});
编辑:

函数drawpills(){
返回$.post('js/fetchdata.php',函数(数据){
});
}
drawpills().done(函数(数据){
var clock=document.getElementById('clock');
clock.innerHTML=“”;
回调(数据);
}).fail(函数(){
//发生了一个错误
});
函数回调(数据){
var picid=“pillpic”+数据;
返回picid;
}

无法从“完成”返回数据()。这里,pillid是promise接口,而不是通过在任何promise方法中设置逻辑作为done()回调所期望的字符串。一旦请求完成,所有需要使用返回值的函数都应该被调用。作为一个好的阅读:我试着按照这个例子,这是我结束了,如果你能给我一个例子,它将不胜感激。而不是
返回数据,调用需要从这里获取数据值的函数。Ajax是异步的,这就是为什么!我试着这样做,如果你检查编辑,但它仍然不工作,我真的很新,所以我真的不知道我在做什么。
function drawpills() {
    return $.post('js/fetchdata.php', function (data) { 

    });
}
drawpills().done(function(data) {
    var clock = document.getElementById('clock');
    clock.innerHTML = "<img src='images/clock/pill.png' alt='pill_image' id='pillpic" + data + "'/>";
    callback(data);
}).fail(function() {
    // an error occurred
});
function callback(data){
var picid = "pillpic" + data;
return picid;
}