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:

輸入用戶名,年齡,性別,點擊提交或者什么都不輸入


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM