javascript - ajax 承诺数据未定义
问题描述
我对此有些头疼。我有一个这样的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:
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 - 如何解析多个数组的数组
- python - AttributeError:未知的属性插值
- javascript - 如何使用 Javascript 关注范围滑块?
- javascript - onClick 仅在-element上触发
- java - 如何在使用 javamail 发送电子邮件时安全地使用凭据
- c# - 文件未从 File 或 PhysicalFile IActionResult 下载
- doorkeeper - 将范围限制为某些用户
- python - 在成本函数中包含与预期模型输出的偏差
- c# - 有没有办法阻止我的页面在我导航到它们时只闪烁进出?
- unix - 使用 find 命令计算某些类型的可执行文件