我有自定义功能。在这个函数内部是一个$.ajax
调用,它返回一个我想用JSON.parse
转换为JSON然后返回的字符串。
现在,我想出了如何返回字符串,然后在返回数据时返回另一侧的JSON.parse
。但是,当我尝试将字符串转换为函数中的JSON并返回它时 - 这不起作用,我不明白为什么。
我的猜测是我不明白如何处理$.ajax
返回对象以及如何从此对象中检索responseText。
这是我的代码;
$.plugin.ownfunction = function(options) {
var promised_data = $.ajax({
method: "POST",
url: "plugin/php/somephp.php",
data: opts
})
// this does not work
// promised_data = JSON.parse(promised_data);
// this also does not work
// promised_data = JSON.parse(promised_data.responseText);
return promised_data;
};
另一方面,我这样做;
$.database.readbehavior({ some options }).done(function(data) {
// this does work – but I would like to do the JSON.parse already in the function
var x = JSON.parse(data);
console.log(x);
});
编辑: 我很抱歉不同意 - 但这不是如何从异步调用中返回响应的重复?主题。我设法从异步调用返回响应。问题是这个响应的格式,我遇到了麻烦。
溶液:
正如哈克托在评论中指出的那样;将dataType : "json"
添加到$.ajax
调用会将数据作为JSON返回。问题解决了!谢谢!