先要起一個服務 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:
輸入用戶名,年齡,性別,點擊提交或者什么都不輸入