精华内容
下载资源
问答
  • ajax使用POST方法提交表单

    千次阅读 2010-01-17 21:02:00
    ajax中使用post 方式提交表单时能提交多达2GB的内容,而GET方法只能提交最多512KB的内容.以下是ajax POST提交的例子. Ajax POST方法提交表单 <!-- window.onerror=function(errorMessage,errorUrl,errorNum) { alert...

     

    ajax中使用post 方式提交表单时能提交多达2GB的内容,而GET方法只能提交最多512KB的内容.以下是ajax POST提交的例子.

     

      

    服务器端处理代码(ajax_post.ashx):

    展开全文
  • 使用requests库中的post(url,params)方法,先通过观察表单的网页源代码,或者是通过逆向工程的方法获取表单提交的字段,构造参数params,就能实现模拟登录操作. 例如: url = 'http://xxx.com/login' captcha = input() ...

    使用requests库中的post(url,params)方法,先通过观察表单的网页源代码,或者是通过逆向工程的方法获取表单提交的字段,构造参数params,就能实现模拟登录操作.
    例如:

    url = 'http://xxx.com/login'
    captcha = input()
    params = {
        'email': 'xxx@163.com',
        'password': '********',
    }
    html = requests.post(url, params)
    

    就是一个典型的利用Post登录网站的方法.
    不过想要获取表单进行提交还需要一些技巧,下面将描述两个获取的方法.

    查看网页源代码提交表单

    https://www.douban.com/豆瓣网为例,豆瓣网的登录只需要填写账号和密码就能登录.
    在这里插入图片描述
    我们根据表单找到相应的源代码信息:
    在这里插入图片描述
    其中,<form>标签是表单,<form>中的action=为表单提交的URL,下面<fieldset><input>为表单提交的字段,name=就是字段的名称,由此可以构造表单进行登录.(因为没有验证码,所以只需要构造来源,邮箱,密码即可登录)

    import requests
    
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) '
                      'AppleWebKit/537.36 (KHTML, like Gecko) '
                      'Chrome/67.0.3396.79 Safari/537.36'
    }
    url = 'https://www.douban.com/accounts/login'
    
    # html=requests.get(url,headers)
    params = {
        'source': 'index_nav',  # 在首页进行登录
        'form_email': 'xxx@163.com',  # 邮箱/手机号
        'form_password': '********'  # 密码
    }
    html = requests.post(url, params)
    html.encoding = html.apparent_encoding
    print(html.text)
    

    查看html,可以发现登陆已经成功
    在这里插入图片描述

    逆向工程提交表单

    在这里插入图片描述
    在浏览器中打开开发者工具,选择Network,然后输入邮箱和密码,点击登录.
    在这里插入图片描述
    发现在All中第一个文件是login,通过查看Headers获取到方法是Post,请求的URL
    在这里插入图片描述
    在最下方的Form Data得到提交的表单信息
    在这里插入图片描述
    这样就可以不用观察源代码得到了表单的信息.之后就可以编写代码使用Post进行登录.

    针对验证码的表单提交

    现在像豆瓣网这种登录只需要账号密码,不用验证码的太少了,这里以 http://bangumi.tv/Bangumi 番组计划为例,说明一下.

    在这里插入图片描述
    用逆向工程的方法登录后,可以看到POST和URL
    在这里插入图片描述
    在Form data中得到表单的信息
    在这里插入图片描述
    不过提交的表单中不仅包括了表单的哈希值,登录的来源,邮箱,密码,还有验证码和点击的按钮.
    通过验证源代码,确定只会改变的是验证码
    前三个值
    在这里插入图片描述
    账号和密码
    在这里插入图片描述
    验证码
    在这里插入图片描述
    登录框(不是很懂为什么这个要提交)
    在这里插入图片描述
    所以在构建params时,需要先将网页中的验证码图片下载下来,通过人工观察,或者验证码识别工具或者深度学习的方法等获取验证码的信息,填写到params中才能实现登录.
    因为还没学得这么深,所以这里只用人工观察的方法获取验证码信息
    获取验证码

    url='http://bangumi.tv/login'
    res=requests.get(url,headers)
    res.encoding=res.apparent_encoding
    selector=etree.HTML(res.text)
    selector.xpath('//p[@class="captcha_img"]/img/@src')
    

    但是遗憾的是,selector并没有返回任何的内容
    在这里插入图片描述
    也就是虽然标签存在,但是验证码图片并不是立刻出现在response中,而是只用了异步加载的技术加载,查看network选项卡进行抓包,
    在这里插入图片描述
    果不其然,得到了验证码URL,将验证码保存到本地

    import requests
    
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) '
                      'AppleWebKit/537.36 (KHTML, like Gecko) '
                      'Chrome/67.0.3396.79 Safari/537.36'
    }
    captcha_url = 'http://bangumi.tv/signup/captcha?15424188795671'
    res = requests.get(captcha_url, headers)
    with open('d:/captcha.jpg', 'wb') as pf:
        pf.write(res.content)
    

    d:/根目录下就能找到验证码,
    在这里插入图片描述
    根据验证码构造params

    url = 'http://bangumi.tv/FollowTheRabbit'
    captcha = input() #输入本地路径的验证码信息,例如上图中的2qe3s
    params = {
        'form_hash': '95b4e189',
        'referer': 'http://bangumi.tv/',
        'dreferer': 'http://bangumi.tv/',
        'email': 'xxx@163.com',
        'password': '********',
        'captcha_challenge_field': captcha,
        'loginsubmit': '登录'
    }
    html = requests.post(url, params)
    html.encoding = html.apparent_encoding
    print(html.text)
    

    然而很遗憾还是不行…
    在这里插入图片描述
    这是因为,验证码存在自身拥有hash校验值和时间值所以它的URL也是会变化的,不能用于相同的登录页面.
    在这里插入图片描述
    在这里插入图片描述
    不过不用担心,我们还有最终的解决方法—Selenium模拟浏览器,不过这里篇幅太小,写不下.
    解决方法可以继续参考我的这篇文章还没写完

    展开全文
  • 使用layer弹窗提交表单时判断表单是否输入为空 获得 layer 文件包后,解压并将 layer 整个文件夹(不要拆分结构) 存放到你项目的任意目录,使用时,只需引入 layer.js 即可 使用时一定他要先引入jq1.8,或者以上...

    使用layer弹窗提交表单时判断表单是否输入为空

    1. 获得 layer 文件包后,解压并将 layer 整个文件夹(不要拆分结构) 存放到你项目的任意目录,使用时,只需引入 layer.js 即可
    2. 使用时一定他要先引入jq1.8,或者以上版本!!!
    3. 下面是提交表单的实列
    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
        <title></title>
        <script src="__STATIC__/js/mui.min.js"></script>
        <link href="__STATIC__/css/mui.min.css" rel="stylesheet"/>
        <script src="__STATIC__/layer/jquery-2.2.4.min.js"></script>
        <script src="__STATIC__/layer/layer.js"></script>
        <script type="text/javascript" charset="utf-8">
            mui.init();
        </script>
    </head>
    <body>
            
            <center>
                    <ul class="mui-table-view">
                    <li class="mui-table-view-cell">商品入库</li>
                    </ul>
            </center>
            
    <form action="{:url('order')}" method="post" class="mui-input-group">
        <div class="mui-input-row">
            <label>商品单号:</label>
        <input type="text" class="mui-input-clear" placeholder="  请输入用户名" name="order" id="order">
        </div>
            <div class="mui-input-row">
                    <label>商品名称:</label>
            <input type="text" class="mui-input-clear" placeholder="  请输入用户名" name="name" id="name">
            </div>
            <div class="mui-input-row">
                    <label>商品单价:</label>
            <input type="text" class="mui-input-clear" placeholder="  请输入用户名" name="money" id="money">
            </div>
            <div class="mui-input-row">
                    <label>商品库存:</label>
            <input type="text" class="mui-input-clear" placeholder="  请输入用户名" name="stock" id="stock">
            </div>
            <div class="mui-input-row">
                    <label>商品备注:</label>
                    <input type="text" class="mui-input-clear" placeholder="  请输入密码" name="remarks" id="remarks">
            </div>
        <div class="mui-button-row">
            <button type="submit" class="mui-btn mui-btn-primary" id="cx">确认</button>
        </div>
            
    </form>
    <script type="text/javascript">
       $(document).ready(function(){
            $('#cx').click(function(){  
                var $1 = $.trim($('#order').val());
                var $2 = $.trim($("#name").val());
                var $3 = $.trim($("#money").val());
                var $4 = $.trim($("#stock").val());
                var $5 = $.trim($("#remarks").val()); 
                if($1 == ''){  
                    layer.msg('商品单号不能为空',function() {time:2000}); 
                    return false;  
                }
                if($2 == ''){  
                    layer.msg('请输入商品名称!',function() {time:2000});
                    return false; 
                }
                if($3 == ''){  
                    layer.msg('请输入商品单价!',function() {time:2000});
                    return false; 
                }
                if($4 == ''){  
                    layer.msg('请输入商品库存!',function() {time:2000});
                    return false; 
                }
             
            });  
        });
    </script>
    </body>
    </html>
    
    展开全文
  • 使用Validation,我们有时候不希望验证成功后直接跳转页面(比如判断登录密码用户名正确与否),而希望自己使用Ajax提交,并且验证回调的结果。 $('.login-form').validate({ //验证规则, rules: { ...

    在使用Validation时,我们有时候不希望验证成功后直接跳转页面(比如判断登录密码用户名正确与否),而希望自己使用Ajax提交,并且验证回调的结果。

    
                    $('.login-form').validate({
                    //验证规则,  
                    rules: {
                        username: {
                            required: true
                        },
                        password: {
                            required: true
                        },
                        remember: {
                            required: false
                        }
                    },
    
                    messages: {
                        username: {
                            required: "必须输入用户名"
                        },
                        password: {
                            required: "必须输入密码"
                        }
                    },
                    submitHandler: function (form) {                    
                        $.ajax({  
                            type: 'post',  
                            url: "/plan/preplan/preplan_person_login.action", 
                            data:{
                                username:$('#username').val(),
                                password:$('#password').val()
                            },
                            success:function(data){
                                //console.log(data=="\"ok\"");
                                if(data=="\"ok\""){
                                    location.href ="/plan/preplan/plan_index.action";  //成功执行 
                                }else{
                                    alert('出错');//出错执行
                                }
                            }   
                        }); 
                        return false; // 阻止表单自动提交事件
                    }
                });
    
    展开全文
  • jQuery ajax中数据以键值对(Key/Value)的形式发送到服务器,使用ajax提交表单数据可以使用jQuery ajax的serialize() 方法表单序列化为键值对(key1=value1&key2=value2…)后提交。serialize() 方法使用标准的...
  • 什么使用jquery 的submit()方法不能提交表单
  • Flask表单提交方法

    千次阅读 2018-04-19 18:01:27
    这里介绍一下Flask表单提交相关的方法,还是以代码实例为主。首先,Flask模板中表单提交代码与我们一般写的H5表单无异,当然,Flask也提供了表单类,Flask-WTF扩展。这里只介绍常规的表单提交方法。首先是模板类:&...
  • 1、今天遇到一种情况,js使用submit方法提交表单,怎么都提交不过去,加断点倒跳过去了,主要实现的是这样的一个功能,点击一个按钮触发一个方法,在方法底下再提交表单过去,主要代码如下: &lt;button class...
  • 在现在的网站开发过程中,对表单数据进行验证是非常必须的,通过Js将表单数据在客户端进行校验验证...故而今天本篇博文讲在浏览器客户端使用Js对表单数据校验后后提交表单的3种方法。 1、方法一 HTML代码:
  • 今天遇到一个问题:在form表单中的input上使用disabled禁用标致,会导致表单提交时获取不到值。经过调试,以及参考相关博文,最终得以解决,下面记录解决方法。 form表单输入框input设置disable属性提交后,得不到...
  • ajax提交表单时阻止表单自动提交

    千次阅读 2017-05-13 11:51:02
    ajax提交表单时,如果没注意到在form标签中添加onsubmit="return false;",简直是恶梦,如果不加,表单会自动提交,action默认是当前页面,然后你提交会一直刷新页面,并且在地址栏会出现请求字段。 =====...
  • 使用ajax方法实现form表单提交

    千次阅读 2018-02-09 10:52:13
    注:转载的原文地址:https://www.cnblogs.com/han-1034683568/p/7199168.html使用ajax方法实现form表单提交作者:13GitHub:https://github.com/ZHENFENG13版权声明:本文为原创文章,未经允许不得转载。...
  • 使用FormData对象提交表单

    千次阅读 2016-10-12 19:36:12
    这是HTML5中新增的一个Api,他能以表单对象作为参数,自动的把表单的数据打包,当ajax发送数据,发送这个FormData对象,以达到发送表单数据的目的。创建: 参数是一个form节点对象var fm = document....
  • HTML禁止表单提交方法

    万次阅读 2018-12-11 19:32:11
    有时在点击提交按钮不希望提交form表单,所以在写提交按钮应该注意以下几点: &lt;form name="form1" method="post" action="" &gt; &lt;table width="50%&...
  • ajax提交form表单方法

    万次阅读 2019-03-01 09:29:35
    前台无论是简单的html、jsp或者使用了easyui框架,只要是提交表单一般都会使用到ajax。 ajax提交表单分为两种: 1、无返回结果的,就是把表单数据直接提交给后台,让后台直接处理; 最简单...
  • 使用ajax方法实现form表单提交作者:13GitHub:https://github.com/ZHENFENG13版权声明:本文为原创文章,未经允许不得转载。写在前面的话在使用form表单的时候,一旦点击提交触发submit事件,一般会使得页面跳转,...
  • submit方法提交表单数据中文乱码

    千次阅读 2018-07-23 09:51:01
    遇到的问题如题,使用submit方式,将form中的数据提交到后台,出现了中文乱码的问题。 原先一直认为是tomcat配置或者字符...语句,因此,submit表单默认使用了get方式上传数据。补上上头那句话即可。 一个非常...
  • jquery 通过submit()方法 提交表单示例

    千次阅读 2016-11-28 15:09:15
    jquery 通过submit()方法 提交表单示例: 本示例:以用户注册作为例子。使用jquery中的submit()方法实现表单提交。 注:本示例仅提供了对表单的验证,本例只用选用了三个字段作为测试。  用户点击提交按钮...
  • 如何提交form表单嵌套,form表单不能嵌套使用! 解决思路:将嵌套的form表单提取到最外层,将表单外要提交的数据,提交表单提交提交方法如下: <form action="" id="data_form" method="post" enctype...
  • JS 提交表单后清空表单

    千次阅读 2019-06-23 17:07:03
    清空表单是比较常见的场景,表单本身就有reset事件作用于清空表单,但是reset事件需要点击按钮才能触发,我们现在想不触达按钮在表单提交的submit事件内,当提交表单成功后清空表单中 value 。 下面来看代码,很...
  • 使用Angular提交表单

    万次阅读 2015-05-06 13:13:49
    使用Angular提交表单 我们准备在之前使用的标签中设置我们的Angular应用。所以删除里面的内容,我们就可以开始了。 设置一个Angular应用 步骤为:  1. 加载Angular  2. 设置module  3. 这是...
  • html——form表单提交方法表单提交注意点

    万次阅读 多人点赞 2018-08-19 09:01:21
    1、type=”submit” &amp;amp;amp;amp;amp;amp;lt;form name=”form” method=”post” action=”#&...input type=”submit” name=”submit” value=”提交&amp;amp;amp;amp;amp;quo
  • python表单提交 post方法

    千次阅读 2019-02-26 12:31:32
    Requests表单提交功能 异步加载技术,url不会改变: F12 network show more requests method:post 提交数据 form data page:2 page:3 审核元素中的url: https://www.crowdfunder.com/browse/deals&amp;amp;...
  • 使用Jmeter进行提交表单的操作

    万次阅读 2016-12-21 15:45:00
    写个博客真是累,写完上一篇发现CSDN博客竟然要审核???纳尼??我只是做个技术备忘而已啦。...如果直接在登录的HTTP后加提交表单的请求是不会成功的,为什么呢?因为登录的用户名和密码没有记住!提交表单

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 459,066
精华内容 183,626
关键字:

使用什么方法提交表单时