我对此有些头疼。我有一个这样的 ajax 调用:
function genericname()
{
var domain = $('#input').val();
var sendData = {
'domain': domain
};
var promise = $.ajax(
{
type: 'POST',
url: '/functions.php',
data:
{
module: 'modulename',
operation: 'functionname',
parameters: sendData
},
dataType: 'json'
}).promise();
promise.then(function(data)
{
console.log(data);
return data;
});
promise.fail(function(data)
{
console.log(data);
});
}
现在的问题是,在调试时我注意到 promise.then 和 promise.fail 都被跳过了。我调用输出的 php 过程是真实的。实际上,当我查看调试工具的网络选项卡时,响应是正确的。
谁能解释一下这里的错误是什么?
编辑:php 函数输出的结果是 json_encoded
这个函数正在另一个 ajax 调用的 .then 部分被调用
最佳答案
删除 ajax 请求末尾的 .promise:
var domain = $('#input').val();
var sendData = {
'domain': domain
};
var promise = $.ajax(
{
type: 'POST',
url: '/functions.php',
data:
{
module: 'modulename',
operation: 'functionname',
parameters: sendData
},
dataType: 'json'
})
关于javascript - ajax promise 数据未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51068423/