程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> 腳本-jquery的$.get()獲取驗證碼的問題。

腳本-jquery的$.get()獲取驗證碼的問題。

編輯:編程綜合問答
jquery的$.get()獲取驗證碼的問題。

這是我們學校的門戶登錄頁面我是鏈接,戳我!,通過觀察其頁面代碼的提交部分,其提交方式是原始表單。

 <script type="text/javascript">

            function submitForm(){  
                var date = new Date();
                var ajax_path = "./getVcode.jsp?timestamp="+date.getTime();
                var flag = false;
                $.get(ajax_path , function(data){
                    var ajaxStr = data.toLowerCase();
                    ajaxStr = ajaxStr.replace(/\s+/g,"");
                    ajaxStr = ajaxStr.replace(/\r\n/g,"");
                    ajaxStr = ajaxStr.replace(/<\/?.+?>/g,"");
                    var inputStr = $("#vcode").val().toLowerCase();
                    var username = $("#username").val();
                    var password = $("#password").val();
                    if(''==username){
                        $("#msg").html("請輸入用戶名!");
                        $("#username").trigger("focus");
                        return false;
                    }
                    if(''==password){
                        $("#msg").html("請輸入密碼!");
                        $("#password").trigger("focus");
                        return false;
                    }
                    if(''==inputStr){
                        $("#msg").html("請輸入驗證碼!");
                        $("#vcode").trigger("focus");
                        return false;
                    }
                    if(ajaxStr==inputStr){
                        $("#fm1").submit();
                    }else{
                        $("#msg").html("驗證碼錯誤!");
                        $("#vcode").trigger("focus");
                        return false;
                    }
                });

        </script>

知道了其驗證碼是客戶端對比的(其實這樣還不如沒有),也就是說有可能通過直接訪問腳本中的211.85.162.240:8080/cas/getVcode.jsp?timestamp=...來直接獲得正確的驗證碼,確實,當我訪問了一次http://211.85.162.240:8080/cas/getVerificationCode?dateTime=...獲取驗證碼圖片(這是必須的一步),再訪問http://211.85.162.240:8080/cas/getVcode.jsp?timestamp=...是可以得到驗證碼的,而在文件中通過jquery的$.get()方法卻獲取不到驗證碼,這是我的代碼:

 <script src="Scripts/jquery-1.9.1.min.js"></script>
    <script>
        $(function () {
            var date = new Date();
            $("#randpic").attr("src", "http://211.85.162.240:8080/cas/getVerificationCode?dateTime=" + date.getTime());


            $("#get").click(function () {
                var ajax_path = "http://211.85.162.240:8080/cas/getVcode.jsp?timestamp=1453276786065";
                $.get(ajax_path, function (data) {
                    var ajaxStr = data.toLowerCase();
                    ajaxStr = ajaxStr.replace(/\s+/g, "");
                    ajaxStr = ajaxStr.replace(/\r\n/g, "");
                    ajaxStr = ajaxStr.replace(/<\/?.+?>/g, "");
                    $("#text").val(ajaxStr);
                });

            });
        });

    </script>

不是說地址欄輸入和$.get()本質是一樣嗎?那麼我該如何編寫才能在js中獲取到正確的驗證碼呢?

最佳回答:


用fiddler調試下,一個是,每次請求,都會刷新一次驗證碼,一個是,get雖然是獲得驗證碼,但是服務器也許會判斷session referer等。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved