php - ajax 响应数据始终未定义
问题描述
我试图通过 ajax 代码从数据库中获取数据。PHP 代码运行良好,但 ajax 响应始终未定义。我试过 json bat 结果是一样的。这里是代码:
var email = $('#email').val();
function getAjax(p, m) {
$.ajax({
url: '../lib/checkmail.php',
type: 'post',
data: {val : p, column : m},
success: function (data) {
return data.toString();
}
});
}
if (email.length > 0){
alert(getAjax(email, 'youremail'));
}
解决方案
ajax 调用异步工作。所以当你调用getAjax(p, m)
if 时会开始获取 url,这需要时间,但函数会立即返回。只有在检索到 url 之后,success
才会执行 ajax 调用的功能。所以你可以测试的是:
var email = $('#email').val();
function getAjax(p, m) {
$.ajax({
url: '../lib/checkmail.php',
type: 'post',
data: {val : p, column : m},
success: function (data) {
alert(data.toString());
}
});
}
if (email.length > 0){
getAjax(email, 'youremail');
}
这应该会给你一个正确响应的警报。
另一个明显的问题是,您现在可能意识到,它getAjax(p, m)
永远不会返回值。return
属于success
函数。因此,返回值getAjax(p, m)
将始终为“未定义”。
您将必须学习如何使用事件驱动的异步编程语言。最好使用一本好书或课程。
推荐阅读
- python - 从数据框中的单个值列表中检索值,其中空列表也在数据框中
- python-3.x - 错误:无法打开 osm 文件“accesoeste.net.xml”。错误:未加载节点
- azure-data-factory-2 - Azure 数据工厂 - 使用集成运行时运行数据流
- uitableview - 这段代码背后的原因是什么导致内存泄漏,而 tableView 单元格中的 deque Cell 用于索引路径处的行
- java - servlet.service 错误,classNotFoundException
- r - 如何修复R中非数字矩阵中的错误
- swiftui - 警报视图 - 在切换结果中
- c - 数据类型范围的真正含义是什么?
- javascript - 如何在reactjs中检查以带有Route hook的短语开头的随机生成的url
- apache-spark - 在 PySpark 中的 JOIN 内创建列并用作连接键