无法获得Ajax Call的结果

时间:2013-09-02 05:38:38

标签: php jquery ajax

我正在使用Ajax从表单向php文件发送请求。我想从这个php文件中收到一个结果。

这是我的代码:

<script type="text/javascript">
    jQuery(document).ready(function($){
        $('#devis_gratuit').submit(function(e){
            e.preventDefault();

            $.getJSON(
                'mail.php', {
                    prestation: $('.prestation-input').val(),
                    heures: $('.heures-input').val(),
                    nom: $('.nom-input').val(),
                    ville: $('.ville-input').val(),
                    prenom: $('.prenom-type').val(),
                    code_postal: $('.code_postal-input').val(),
                    tel: $('.tel-input').val(),
                    email: $('.email-status').val()},

                    function(data){
                        alert("A"); //Doesn't work
                        $('#status').hide();
                        $('#status').html('')
                            .append('<b>Paramètre en majuscule</b> : '+data.response+'<br/>');                   
                        $('#status').fadeIn();
                    }
                );
            });
        });
    </script>

和我的php代码 mail.php

if(isset($_GET['prestation'])
    && isset($_GET['heures'])
    && isset($_GET['nom'])
    && isset($_GET['prenom'])
    && isset($_GET['ville'])
    && isset($_GET['code_postal'])
    && isset($_GET['tel'])
    && isset($_GET['email'])) 
{
    $response = "Ok";
    die($response); //Doesn't work
}
else {
    $response = "Ko";
    die($response); //Doesn't work
}

$return = array('response' => $response);
header('Content-type: application/json');

但看起来它没有上传PHP文件,我在firebug上看到请求已成功发送。有什么帮助吗?谢谢。

3 个答案:

答案 0 :(得分:0)

如果在PHP中使用die(),则会向客户端返回500响应代码。因此,您永远不会在success代码中输入匿名getJSON功能。

换句话说,要在以下代码段中获取警报,您需要返回成功的响应代码(2xx):

$.getJSON(
    'mail.php', 
    {...},
    function(data){
        alert("A");
        ...
    }
);

答案 1 :(得分:0)

只需移除die并使用json_encode($return);,然后再次检查,因为您的回复应采用json格式。

答案 2 :(得分:0)

您没有从服务器获取json格式。

只需更改

$response = "Ok";
die($response);

$response[] = "Ok";
echo json_encode($response);