如何在$ .jQuery ajax帖子的成功中使用if语句:?

时间:2015-08-13 13:31:54

标签: jquery ajax

我有一个webapp和一个服务器端应用程序,当服务器端应用程序成功保存webapp的POST时,它以“已保存”响应,否则返回“错误”,如何创建IF语句到检查回复?

function send(family){
        $.ajax({
            type: 'POST',
            url: 'http://sistema.agrosys.com.br/webpro/webadm/wcgarvore',
            data: family,
            success: function(data, textStatus ){
               console.log('DONE: Request has been successfully sent');
               if(data === 'error'){ //how can I do it
                   alert("ERR:\n\ncouldn't save");
               }
            },
            error: function(xhr, textStatus, errorThrown){
              alert('Envio Falhou\n\nERR: '+errorThrown);
            }
      });
}

3 个答案:

答案 0 :(得分:1)

尝试此操作并修剪返回字符串 if($.trim(data) === 'error') 。这可能是一个空白问题。您可以确定是否签入控制台并查看返回的内容。修剪回报然后进行比较。

答案 1 :(得分:0)

如果服务器以正确的错误消息响应,那么它将在成功处理程序中接收。

所以,成功处理程序您将接收数据作为对象或字符串。

现在,在这种情况下,你希望它是一个字符串'error'而不是检查对象,它可能是data.status或data.textstatus。

所以在if条件之前添加console.log(data)并检查。

console.log(data);
if(data.status == 'error'){}

如果数据在对象检查中检查相应的条件。

答案 2 :(得分:0)

请考虑以下示例(使用PHP 5.5.9和Firefox 39进行测试)。

ajaxtest.html

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <script src="https://code.jquery.com/jquery-1.11.3.min.js"></script>
    <script>
        $(document).ready(function() {
            $('#sendAjax').click(function () {
                send($('input[name="param"]').val());
            });
        });
        function send(test_data){
            $.ajax({
                type: 'POST',
                url: 'ajaxtest.php',
                data: { msg: test_data },
                success: function(data, textStatus ){
                    console.log('DONE: Request has been successfully sent');
                    console.log(data);
                    if(data === 'error'){
                        $('#response').text('error');
                        $('input[name="param"]').val('get_success');
                    } else {
                        $('#response').text('success');
                        $('input[name="param"]').val('get_error');
                    }
                },
                error: function(xhr, textStatus, errorThrown){
                    alert('Envio Falhou\n\nERR: '+errorThrown);
                }
            });
        }
    </script>
</head>
<body>
<button id="sendAjax">Send Ajax</button>
<div id="response"></div>
<input type="hidden" name="param" value="get_success" />
</body>
</html>

ajaxtest.php

<?php
if ($_REQUEST['msg'] == 'get_error') {
    echo "error";
} else {
    echo "success";
}

希望这有帮助。