Ajax响应给出数据成功错误
Ajax Response is giving data success error
我是Ajax新手,希望通过链接到PHP脚本,在JQUERY中使用Ajax执行一些数据库交互。
$(function() {
$.ajax({
type: "POST",
url: "response.php",
data: {name:"amol"},
success: function (data) {
if (data.Success) {
alert('Success! We have data.Success!');
} else {
alert('Error! We do not have data.Success!');
}
},
error: function(jqXHR, textStatus) {
alert('Error: ' + textStatus);
}
});
});
我的response.php文件包含的内容不多。其中的代码是:
<?php
echo "Hello";
?>
我想用这段代码进行数据库交互。但是当我运行这么多代码时,我得到的输出是"Error!"我们没有数据,成功!
另外,我想知道,如何从php脚本成功响应输出变量?
提前感谢您的帮助!!
success: function(data) {
alert('Success! We have data - Success!');
}
将按预期工作
你所做的是问你是否有一个data
对象和Success
项目,行
if (data.Success) {
data
只是一个字符串,因此计算结果为false
。
success: function(data) {
部分只有在您成功返回数据时才会发生
然后你可以通过将数据添加到div, alert或其他地方来使用这些数据
success: function(data) {
alert(data);
}
您返回的正是预期的内容,因为data
变量没有Success
项-相反,您返回的是字符串(认为$string = "hello" - data
= $string生效!)
试试这段代码…
$.post("response.php", {name:"anmol"},function(data){
alert(data);
});
在你上面的代码中…
<?php
echo "Hello";
?>
这里你传递字符串,所以你可以简单地使用…
如果你想传递数组值你可以像这样使用
<?php
$data=array(
"name":"anmol",
"age":"21",
);
echo json_encode($data);
?>
$.post("response.php", {name:"anmol"},function(data){
var json = $.parseJSON(data);
alert(json.name);
alert(json.age);
});
在这里,只有当函数成功时才会得到警告,在函数失败时,你不能得到任何响应
这工作(我刚刚测试)与您的JavaScript代码:
<?php
$json_response = array();
$json_response['Success'] = true;
header('Content-Type: application/json');
echo json_encode($json_response);
?>
问题是您没有响应JSON对象(这是一种数据交换格式)
你帖子中的第一条评论是对的,Graham Ritchie的解释也是对的;此外,您应该查看jQuery AJAX文档中的示例。
此外,您应该考虑done
和fail
,而不是success
和error
,因为它们在较新的jQuery版本中被认为已被弃用。他们只是更先进一点,但更强大。
下面是一个通用的例子:
$(function() {
$.ajax({
type: "POST",
url: "response.php",
data: {name:"amol"}
})
.done(function(data) {
// What you want to do in case of success
// 'data' is going to be what the URL gives you. i.e.: HTML, JSON
// You could append the HTML to a DIV or use the JSON in some way
})
.fail(function(jqXHR, textStatus) {
// What you want to do in case of error
});
});
我建议您查看本教程,特别是关于AJAX和Deferred的最后一章。
如果您是ajax新手。我建议你开始使用这个狗屎
$.ajax({
url: 'response.php',
type: 'POST',
dataType: 'json',
data: {name: 'amol'},
})
.done(function(data) {
if (data.Success) {
alert('Success! We have data.Success!');
} else {
alert('Error! We do not have data.Success!');
}
console.log("success");
})
.fail(function() {
console.log("error");
})
.always(function() {
console.log("complete");
});
- 解析云代码错误:解析.错误{代码:141,消息:“未调用成功/错误”}
- 解析查询.首次成功/错误 间歇性不调用回调
- 未调用成功/错误
- 当 AJAX 响应成功时清除 jquery 成功/错误消息 span 类
- 在 AngularJS 中声明一个承诺,并带有命名的成功/错误回调
- JQuery - 不要在按钮成功/错误时添加悬停类
- jQuery:在成功/错误中使用延迟对象(ajaxSetup 选项)
- 创建一个成功/错误的承诺,例如像ajax
- jquery.couchdb.js Ajax 成功/错误未被调用
- 未调用成功/错误 - 解析代码 141
- 处理开机自检后从 Angular 控制器到指令的成功/错误 DOM 操作
- node.js未找到解析成功/错误,未定义响应
- 使用JQuery以不可见的方式调用URL并返回成功/错误标志
- 解析云代码嵌套查询时未调用代码141成功/错误消息
- 表单提交的成功/错误信息没有显示
- 如何绑定引导加载按钮成功/错误在表单提交
- Ajax响应给出数据成功错误
- 在'fetch'之后没有调用成功/错误回调;(Backbone.Collection)
- 主干:正确的传递方式'this'在成功/错误回调中引用匿名函数
- jquery' ajax的哪个部分(成功/错误)接收到重定向状态码?