Php 即使在成功之后,ajax成功调用执行else条件

Php 即使在成功之后,ajax成功调用执行else条件,php,json,ajax,Php,Json,Ajax,我将根据if和else条件从php返回响应。即使在执行if条件之后,ajax成功调用也会执行else条件。下面是我的代码。我得到的不是交易成功,而是没有足够的余额。我试了很多方法,但都没有成功。任何帮助都会很好 php代码 <?php if(isset($_POST['name'])){ // some code } if(isset($_GET['paymentInfo'])) { // some code

我将根据if和else条件从php返回响应。即使在执行if条件之后,ajax成功调用也会执行else条件。下面是我的代码。我得到的不是交易成功,而是没有足够的余额。我试了很多方法,但都没有成功。任何帮助都会很好

php代码

<?php
    if(isset($_POST['name'])){
        // some code
    }

    if(isset($_GET['paymentInfo']))
    {
        // some code
        if($dataPayerBalance >= $amount)
        {
            // some code
            $response = 'success'; 
        }
        else
        {
            $response = 'error'; 
        }
        // some code
        echo json_encode($response);
    }
?>
试试这个

PHP

 <?php

    if(isset($_POST['name'])){
        // some code
    }

    if(isset($_GET['paymentInfo']))
    {
        $response = array();
        // some code
        if($dataPayerBalance >= $amount) {
            // some code
           $response = ('status'=>'success');
        }
        else {
               $response = ('status'=>'error');
        }
        // some code
        echo json_encode($response);
    }
  ?> 

问题是您正在将字符串编码为json,并且在响应中预期的不是json,而是字符串。让我们把它们都变成JSON:

在php代码中:

echo json_encode(['result'=>$response]);
在ajax调用中:

$.ajax({
    url: "your api url",
    type: 'GET',
    data: {'paymentInfo' : dataToSend},
    dataType: 'json'
}).done(function( data ) {
    if (data.result == 'success'){
        //your custom action
    }
})
.fail(function() {
    //your custom action
});

它仍然在提醒我网络选项卡下的响应没有足够的平衡,我得到了json和所有其他html代码。这是个问题吗?{“结果”:“成功”}//还有一些代码。。。。。。。。。。。。。。。。。这就是问题所在吗?我已经把js的部分编辑好了。试试看。
echo json_encode(['result'=>$response]);
$.ajax({
    url: "your api url",
    type: 'GET',
    data: {'paymentInfo' : dataToSend},
    dataType: 'json'
}).done(function( data ) {
    if (data.result == 'success'){
        //your custom action
    }
})
.fail(function() {
    //your custom action
});