关于jquery的$.get()获取验证码的问题-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

关于jquery的$.get()获取验证码的问题

2016-06-03 15:17:40 3160 1

提交方式是原始表单。

     <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中获取到正确的验证码呢?

取消 提交回答
全部回答(1)
  • 吴孟桥
    2019-07-17 19:26:42

    用fiddler调试下,一个是,每次请求,都会刷新一次验证码,一个是,get虽然是获得验证码,但是服务器也许会判断session referer等。

    0 0
相关问答

1

回答

jQuery ajax success()括号里的参数是什么?

2016-06-01 09:12:19 4712浏览量 回答数 1

1

回答

jQuery ajax jsonp方式取后台的json数组报错

2016-07-07 10:11:14 2029浏览量 回答数 1

1

回答

jquery ajax 的$.post()跟$.get()方法有什么区别

2016-07-07 14:20:15 2104浏览量 回答数 1

1

回答

JQuery Ajax + PHP 出现乱码,求解决方法

2016-07-07 14:30:30 2144浏览量 回答数 1

1

回答

jquery ajax 读取json数据存入表格中

2016-07-07 14:45:32 2241浏览量 回答数 1

1

回答

jquery ajax 导入json数据进行修改操作

2016-07-07 15:27:17 3861浏览量 回答数 1

1

回答

使用jQuery ajax,回调函数

2016-07-07 18:31:14 1822浏览量 回答数 1

1

回答

如何更改 jQuery Mobile 的 Ajax 默认提示?

2016-07-08 10:06:20 2275浏览量 回答数 1

1

回答

jquery的ajax好像是无阻塞状态的。

2016-07-08 14:31:53 1459浏览量 回答数 1

1

回答

Jquery如何获取 ajax动态生成的checkbox?

2016-07-11 16:50:48 2049浏览量 回答数 1
+关注
文章
问答
问答排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载