0

別のURL(クロスドメイン)にリダイレクトするために使用しているJSPページがあるので、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スクリプトレットとJavaScriptが同期して実行されることを期待しているようです。本当じゃない。Java / JSPはWebサーバーで実行され、HTMLを生成します。HTML/JSはwebbrowserで実行されます。ブラウザでページを右クリックし、ソースを表示します。Java / JSPが正しく機能している場合、生成されたHTML/JS出力にJava/JSPの1行が表示されないはずです。

代わりに、(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 に答える