我一直在尝试让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?
我感谢任何建议。
答案 0 :(得分:2)
调用error
回调。但是,根据本地网络设置,使用无效主机名可能需要两分钟,直到浏览器意识到主机名无效并且调用了error
回调。
通过在JQuery中timeout
调用中指定ajax
参数,可以缩短浏览器等待失败的时间。有关详细信息,请参阅this answer和this 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;
}
?>