检查所有可能的AJAX响应

时间:2014-05-01 17:05:20

标签: javascript php jquery ajax json

我有一个AJAX函数,它将数据POST到PHP处理程序。我回想起成功"或者"失败"从PHP确定它是否按预期完成。不幸的是,我不熟悉JS / AJAX,也很难找到能回答我问题的文档。

我是否需要对响应进行JSON编码?我只在我的AJAX函数中检查.done(),我是否也应检查成功并失败?尽管PHP处理程序中的功能没有问题,但我的.done()内部的代码(它只是一个警告框)并不起作用。

JS / AJAX:

<script type="text/javascript">
    function powerSignal(device, signal)
    {
        var cfm = confirm("Do you wish to ___ the server?");

        if (cfm==true)
        {
            $.ajax({ type: "POST", url: "https://domain.net/modules/power_functions.php", data: { device: device, 'power_signal': signal }}).done(function(result)
            {
                alert("success!");
            });
        }
    }
</script>

PHP:

if ( isset($_POST["device"]) && isset($_POST["power_signal"]) )
{
    $deviceid = $_POST["device"];
    $signal = $_POST["power_signal"];

    //API: Get Device Inventory
    $url = 'http://domain.net/dp/api/set_device_power_status';
    $fields = array('deviceid' => urlencode($deviceid), 'power_signal' => urlencode($signal));
    $result = curl_get($url, $fields);
    $json = json_decode($result);

    $status = $json->{'status'};

    if ($status == "success")
    {
        echo "success";
    }

    echo "failed";
}

1 个答案:

答案 0 :(得分:0)

result变量的内容将是服务器发回的内容,您必须对其进行测试:

$.ajax({ type: "POST", url: "https://domain.net/modules/power_functions.php", data: { device: device, 'power_signal': signal }}).done(function(result)
            {
                if(result=='success'){
                    alert("success!");
                }else{
                    alert("failure!");
            });

要回答下面的评论,以下是我在当前项目中使用简单的get请求的方式:

            $.get( "/getResult/"+data, function( results ) {
                $('.popin_content').html('<p>Vos documents ont bien été créés :</p><br/><ul><li><a href="/getPDF/'+results+'">Plan PDF</a></li><li>Devis PDF</li></ul>');


            });