【发布时间】:2018-12-06 16:22:45
【问题描述】:
我对此有些头疼。我有一个这样的 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 进程是真的。实际上,当我查看调试工具的网络选项卡时,响应显示为 true。
谁能解释这里的错误是什么?
编辑:php函数输出的结果是json_encoded
这个函数在另一个 ajax 调用的 .then 部分被调用
【问题讨论】:
-
在 ajax 调用结束时松开 .promise()。 api.jquery.com/jquery.ajax
-
代码在jsfiddle 中工作,无论是否调用promise();。要继续使用
promise.then()返回的数据,您需要从genericname()返回该数据--> jsfiddle.net/yg20b8d7/3 - 返回promise.then(...);或更明智,只需返回promise并将then链接到@ 987654330@
标签: javascript php jquery ajax promise