如果url IP不正确,如何返回ajax错误

时间:2016-05-30 01:53:45

标签: javascript jquery ajax post ip

我一直在尝试让ajax为域IP不正确的帖子请求返回错误。

00000000  78 78 78 78 78 78 78 78  78 78 78 78 78 78 78 78  |xxxxxxxxxxxxxxxx|
*
00000030  78 85 3c 2f 69 3e 0d 0a                           |x.</i>..|
00000038

如果我将此更改为var serverAddress =“192.168.24.58 1111 ”,则不会抛出任何错误。

但是,如果我更改“http://”+ serverAddress +“/1111electronTestPage/process.php”  我会得到正确的404错误。

有没有简单的方法让ajax在错误/不存在的IP上抛出错误而不ping ip?

我感谢任何建议。

2 个答案:

答案 0 :(得分:2)

调用error回调。但是,根据本地网络设置,使用无效主机名可能需要两分钟,直到浏览器意识到主机名无效并且调用了error回调。

通过在JQuery中timeout调用中指定ajax参数,可以缩短浏览器等待失败的时间。有关详细信息,请参阅this answerthis question

答案 1 :(得分:-1)

重要的是要知道有时通过ajax执行的不同类型的响应可能过于混乱和乏味,这就是为什么有不同的方法可以使用带有JSON的AJAX从PHP返回响应。

最简单的方法是,如果您的PHP文档正在分析结果,您可以通过数组和json_encode响应返回并在回复PARSE AJAX中执行。

对于瞬间:

<script type="text/javascript">
    var new_ip = '127.0.0.0';
    var parameters = 'action=check_ip&ip='+new_ip;
    $.ajax({
        method:'POST',
        data:parameters,
        url:'myfile.php',
            success:function(response) {
                var answer = JSON.parse(response);
                switch( answer.status_response ) {
                    case 'success' :
                        alert(''+answer.message_response+'');
                        break;
                    case 'error' :
                        alert(''+answer.message_response+'');
                        break;
                }
            }
    });
</script>

<?php 

    //myfile.php
    $action = $_POST['action'];
    switch ( $action ) {
        case 'check_ip':
            $ip = $_POST['ip'];
            $theip = '192.168.1.254';
            if ( $ip == $theip ) {
                $response = array(
                                 'status_response'  => 'success',
                                 'message_response' => 'The IP is correct');
                echo json_encode($response);
            }

            else {
                $response = array(
                                 'status_response'  => 'error',
                                 'message_response' => 'The IP is incorrect');
                echo json_encode($response);                
            }
            break;
    }


?>