• python处理ajax请求


    先要起一个服务 server.py,可以支持python的cgi脚本。

    1 #!coding:utf8
    2 from BaseHTTPServer import HTTPServer
    3 from CGIHTTPServer import CGIHTTPRequestHandler
    4 
    5 port=8080
    6 
    7 httpd=HTTPServer(('',port),CGIHTTPRequestHandler)
    8 print("Starting simple_http on port:"+str(httpd.server_port))
    9 httpd.serve_forever()

    在服务脚本相同的目录下新建cgi-bin文件夹,放置python的cgi脚本,getuser.py

     1 #!coding:utf8
     2 import cgi,cgitb
     3 import urllib2
     4 form=cgi.FieldStorage()
     5 name=form.getvalue('user_name')
     6 age=form.getvalue('user_age')
     7 sex=form.getvalue('user_sex')
     8 data=name
     9 print "Content-type: text/html"
    10 
    11 print
    12 
    13 if name != None and len(name) > 0:
    14     print "<p id=name>%s</p>"%name
    15 else:
    16     print "<p id=name>请输入相关信息</p>"

    html页面,以post方式发送请求,并返回用户名,ajax.html,和server.py在一个目录下:

    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Ajax Post 传值</title>
    </head>
    
    <script language="javascript">
    function saveUserInfo()
    {
        //获取接受返回信息层
        var msg = document.getElementById("msg");
    
        //获取表单对象和用户信息值
        var f = document.user_info;
        var userName = f.user_name.value;
        var userAge   = f.user_age.value;
        var userSex   = f.user_sex.value;
    
        //接收表单的URL地址
        var url = "/cgi-bin/getuser.py";
    
        //需要POST的值,把每个变量都通过&来联接
        var postStr   = "user_name="+ userName +"&user_age="+ userAge +"&user_sex="+ userSex;
    
        //实例化Ajax
        //var ajax = InitAjax();
    
    
        var ajax = false;
        //开始初始化XMLHttpRequest对象
        if(window.XMLHttpRequest) 
        {     //Mozilla 浏览器
            ajax = new XMLHttpRequest();
            if (ajax.overrideMimeType) 
            {    //设置MiME类别
                ajax.overrideMimeType("text/xml");
            }
        }
        else if (window.ActiveXObject) 
        {     // IE浏览器
            try 
            {
                ajax = new ActiveXObject("Msxml2.XMLHTTP");
            } 
            catch (e) 
            {
                try 
                {
                    ajax = new ActiveXObject("Microsoft.XMLHTTP");
                } 
                catch (e) {}
             }
        }
        if (!ajax) 
        {     // 异常,创建对象实例失败
            window.alert("不能创建XMLHttpRequest对象实例.");
            return false;
        }
    
        //通过Post方式打开连接
        ajax.open("POST", url, true);
    
        //定义传输的文件HTTP头信息
        ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
    
        //发送POST数据
        ajax.send(postStr);
    
        //获取执行状态
        ajax.onreadystatechange = function() 
        { 
               //如果执行状态成功,那么就把返回信息写到指定的层里
               if (ajax.readyState == 4 && ajax.status == 200) 
            { 
                msg.innerHTML = ajax.responseText;
                //msg.innerHTML = ajax.return; 
               } 
        } 
    }
    </script>
    
    <body >
    <div id="msg"></div>
    <form name="user_info" method="post" action="">
    姓名:<input type="text" name="user_name" /><br />
    年龄:<input type="text" name="user_age" /><br />
    性别:<input type="text" name="user_sex" /><br />
    <input type="button" value="提交表单" onClick="saveUserInfo()">
    </form>
    </body>
    </html>

    首先运行server.py:

    启动浏览器,输入127.0.0.1:8080:

    点击ajax.html:

    输入用户名,年龄,性别,点击提交或者什么都不输入

  • 相关阅读:
    带圈的数字,类似开票网站开奖号码
    wpf 获取Image的图片并保存到本地
    ashx获取Oracle数据库图片
    Ext选项卡tabpanel切换动态加载数据
    Windows10禁止优酷自动更新(亲测有用)
    数组指针和指针数组的区别
    学习:简谈前端后端
    再谈前后端分离开发和部署
    前端项目部署
    功能测试框架
  • 原文地址:https://www.cnblogs.com/liuweiqiang/p/3859130.html
Copyright © 2020-2023  润新知