我怎样才能从Web服务器获得响应

时间:2017-02-09 11:27:55

标签: json jsp

我有一份表格,我要求客户输入一些细节,

<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工作。 提前谢谢你。

3 个答案:

答案 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 ""
}