我有一份表格,我要求客户输入一些细节,
<form id="redirectForm" accept-charset="UTF-8" method="post" action="https://test.test.com//api/v1/order/create" >
customerName: <input type="text" name="customerName" value=<%=customerName %> />
customerEmail: <input type="text" name="customerEmail" value=<%=customerEmail %> /><br><br>
customerPhone: <input type="text" name="customerPhone" value=<%=customerPhone %> /><br><br>
signature:<input type="text" name="signature" value=<%=signature %> />
根据表单的操作提交页面重定向并显示JSON类型响应(状态+付款链接)。 回应就像:
{"status":"OK","paymentLink":"https:\/\/test.test.com\/billpay\/order\/3ackwtoyn7oks4416fomn"}
帮我解决这个问题 我在jsp工作。 提前谢谢你。
答案 0 :(得分:1)
试试这个......
在提交表单时写一个JS函数并获取URL值。
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<script type="text/javascript">
function check(){
//here you have to get value using element name or id (val1,val2,val3)
$.ajax({
type:'GET',
data: {customerName: val1, customerEmail: val2,customerPhone: val3},
url:'https://test.test.com/billpay/order/3ackwtoyn7oks4416fomn',// Replace with Your Exact URL
success: function(response){
alert(response);
var json = JSON.parse(response);
var values = json.values;
for(var i in values)
{
var New_redirect = values[i].address;
alert(values[i].address);
}
window.loacation=New_redirect;
}
});
})
}
</script>
</head>
答案 1 :(得分:1)
由于这看起来像一个简单的Web服务答案(不是完整的HTML页面),我会使用Ajax发送表单并管理响应。
使用JQuery,使用$.ajax
很容易$.ajax({
url: //the URL
data: //the form value
method: //GET/POST
success: function(response){
//decode the JSON response...
var url = $.parseJSON(response).paymentLink;
//then redirect / not sure since this could be cross-domain...
window.loacation = url;
},
error: function(error){
...
}
})
唯一的想法是不应该使用提交输入发送表单,您需要将按钮链接到执行此Ajax调用的函数。
这可以在没有JQuery的情况下完成,但我可以从内存中写出来;)
如果您可以编辑创建响应的JSP,则可以生成HTML以直接返回值。
<html>
<head>
<script>
window.location.href = '${paymentLink}';
</script>
</head>
<body>
Redirection ...
<br>If nothing happend, you can <a href='${paymentLink}'>click here</a> to be redirected.
</body>
</html>
其中${paymentLink}
是EL,它将打印此变量的值(以及它在服务器上的名称)以使用URL完成脚本。
一旦客户收到它,它就会被执行。
当然,这不会是每个浏览器的跨域。如果不是,您需要使用<a href='${paymentLink}'>Redirection</a>
itsefl。
答案 2 :(得分:0)
我认为您正在寻找响应消息并重定向到某个地方 如果是这样,您可以使用以下代码
if(condition)
{
response.sendRedirect("urpage.jsp");
}
或
if(condition)
{
request.getRequestDispacher("page.jsp");//enter the name of page you want to redirect inside ""
}