0

我有一个 JSP 页面,我用它来重定向到另一个 url(跨域),所以使用 jQuery 我放置了一个按钮单击事件,在该事件下 response.sendRedirect 应该触发,但是一旦页面加载它就会重定向它甚至不等待为警觉。这里有什么问题?请帮忙。

在身体负载上,它调用 load()

<script language="JavaScript">
    function load(){
        <%
        String message=(String)request.getAttribute("error");
        if(message != null){
            out.println("alert(\"" + message + "\");");
        }
        %>

    }

    /*a range of options (products) based on which it decides redirection or form submission
    * will lead to the new webapp*/
    var productArray=["iirDefault","ilmDefault","mdmDefault"];
    $(document).ready(function(){       

    });

    /*Button event handler for the intermediate screen for product selection after login*/
    $('#btnLaunchCSM').click(function(event){
        event.preventDefault();

        var selectedProduct=$('input[name=product_name]:checked').val();
        if(jQuery.inArray(selectedProduct, productArray)!=-1)
        {
            e_add=$("#emailaddress").val();
            p_id=$('input[name=project_id]:checked').val();
            alert(e_add+", "+p_id);
            <% 
            String e_add=request.getParameter("email_id");
            String p_id=request.getParameter("project_id");
            response.sendRedirect("http://abhishek:9090/abc/view/loginProxy.jsp?email_id="+e_add+"&project_id="+p_id); 
            %>


        }
        else
        {
            $("#launchSSO").submit();
        }

    });
</script>
4

1 回答 1

2

您似乎期望 JSP scriptlet和 JavaScript 在您编写代码时同步运行。这不是真的。Java/JSP 在网络服务器中运行并生成 HTML。HTML/JS 在浏览器中运行。在浏览器中右键单击页面并查看源代码。如果 Java/JSP 正确地完成了它的工作,那么在生成的 HTML/JS 输出中应该看不到任何一行。

您需要向您的服务器发送(ajax)HTTP 请求。您可以为此使用 jQuery 或仅使用普通表单提交。或者您可以完全在 JS 中执行重定向。用以下方式替换那个臭<% %>块:

window.location = "http://abhishek:9090/abc/view/loginProxy.jsp?email_id="+e_add+"&project_id="+p_id; 
于 2012-05-05T12:01:06.057 回答