gpt4 book ai didi

java - 捕获 Ajax 表单提交中的服务器端错误

转载 作者:行者123 更新时间:2023-12-01 16:11:17 25 4
gpt4 key购买 nike

我正在使用 Java 应用程序,并且我从模态窗口提交 ajax 表单。我希望代码根据服务器端处理结果在模式中加载成功或错误页面。以下代码仅适用于成功场景。

            $.ajax({
type: "POST",
url: action,
data: params,
success: function() {
$("#p_content").load("/test.jsp?id=12345");
}
});

我对 ajax 相当陌生,但据我了解,在上面的脚本中添加“error:”部分是不够的,它不会检测我的 servlet 代码中的错误。有什么方法可以从这个函数内部读取请求参数吗?或者也许我可以用别的东西?请帮忙!

谢谢,娜塔莎

最佳答案

这是一个用 php 完成的示例。希望有用。

<html><!-- This is index.php -->
<head>
<script src="js/jquery.js" type="text/javascript"></script><!-- link to jQuery -->
<script language="javascript">
$(document).ready(function () {
$('input#send').click(function(){
/* Empty div#error and div#result incase they contain info from the last submission */
$('#error').empty('');
$('#result').empty('');
/* Client-side validation */
var name = $("input#name").val();
var age = $("input#age").val();
if (name==''){
alert('Insert your name.');
}
else if (age==''){
alert('Insert your age.');
} else {
var params = 'name=' + name + '&age=' + age;
$.ajax({
url:'b.php',
type:'post',
dataType:'html',
data:params,
cache: false,
success:data
});
function data (html) {
var $html = $( html ); // create DOM elements in a jQuery object
/* Return errors from 'b.php' */
$html.filter('#err').appendTo("#error");
/* Return valid Post */
$html.filter('#res').appendTo("#result");
/* Clear name input */
$('input#name').val('');
/* Clear age input */
$('input#age').val('');
}
}
});
});
</script>
<style type='text/css'>
#error{
color:maroon;
font-weight:bold;
}
#result{
color:green;
font-weight:bold;
}
</style>
</head>
<body>
<div id="error"></div><!-- View Errors -->
<div id="result"></div><!-- View valid Post -->
<input type='text' name='name' id="name" value='' /><br/ >
<input type='text' name='age' id="age" value='' /><br/ >
<input type='submit' name='send' id="send" value='Send' />
</body>
</html>
<小时/>
<?php /* This is b.php */
if(($_POST['name']=='')||($_POST['age']=='')){
$error = '<div id="err">Error: Fill in ALL fields.</div>';
} elseif(is_numeric($_POST['name'])){
$error = '<div id="err">Error: Name should NOT contain numbers.</div>';
} elseif(!is_numeric($_POST['age'])){
$error = '<div id="err">Error: Age should ONLY contain numbers.</div>';
} else{
$result = '<div id="res">Hi '.$_POST['name'].', you are '.$_POST['age'].' years old.</div>';
}
echo $error;
echo $result;
?>

关于java - 捕获 Ajax 表单提交中的服务器端错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1121563/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com