我使用JSON帖子将数据发布到php函数。我希望收到两种不同类型的回复,成功和错误。 例如,以下函数:
function some_function(){
if ($error){
echo "some error";
exit;
} else {
echo "everything is ok"
exit;
}
}
在这种情况下,两条消息都将返回成功。如何使错误消息返回到ajax中的错误函数? 这是ajax代码:
jQuery.ajax({
url: '<?php echo $url; ?>',
data: response,
dataType: 'JSON',
type: 'POST',
success:function(data){
console.log(data);
},
error: function(data, errorThrown){
console.log(errorThrown);
}
});
答案 0 :(得分:3)
试试这个:
jQuery.ajax({
url: '<?php echo $url; ?>',
data: response,
dataType: 'JSON',
type: 'POST',
success:function(data){
if(data['error']){
alert(data['error']);
}else{
alert(data['success']);
}
},
error: function(data, errorThrown){
console.log(errorThrown);
}
});
在PHP页面上:
function some_function(){
if ($error){
$msg = array("error"=>"some error";
} else {
$msg = array("success"=>"everything is ok");
}
echo json_encode($msg);die;
}
答案 1 :(得分:3)
如果要强制它转到错误回调,那么只需从服务器强制执行错误的响应。考虑这个例子:
<?php
$url = 'index.php'; // sample value
function response($value) {
if($value == 'true') {
http_response_code(200);
$data = array('status' => 200, 'message' => 'Server response is okay!');
echo json_encode($data);
} else {
http_response_code(404);
}
exit;
}
if(isset($_POST['response'])) {
$response = $_POST['response'];
response($response);
}
?>
<script src="jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
jQuery.ajax({
url: '<?php echo $url; ?>',
data: {response: true}, // <-- set to TRUE or FALSE
dataType: 'JSON',
type: 'POST',
success:function(data){
console.log(data);
},
error: function(data, errorThrown){
console.log('error => ' + errorThrown);
}
});
});
</script>
答案 2 :(得分:0)
谢谢。下面的JSON示例工作正常。请找到它。
jQuery.ajax({
url: '<?php echo $url; ?>',
data: response,
dataType: 'JSON',
type: 'POST',
success: response_function
});
response_function(response){
if(response.status == 1){
//success response
alert(response.message);
}else{
//failure response
alert(response.message);
return false;
}
}
在php脚本页面
function some_function(){
if ($error){
$msg = array("status"=> '1', "message"=>"success message");
} else {
array("status"=> '0', "message"=>"some error");
}
echo json_encode($msg);die;
}
Elangovan
答案 3 :(得分:-1)
我没有足够的声誉来评论,但是从JQuery 1.5开始,您需要使用
//
// MocaAdmin-Bridging-Header.h
// MocaAdmin
//
#import <LFHeatMap/LFHeatMap.h>
获取PHP返回的json_encoded数组。