先要起一个服务 server.py,可以支持python的cgi脚本。
#!coding:utf8 from BaseHTTPServer import HTTPServer3 from CGIHTTPServer import CGIHTTPRequestHandler port=80806 httpd=HTTPServer((‘‘,port),CGIHTTPRequestHandler) print("Starting simple_http on port:"+str(httpd.server_port)) httpd.serve_forever()
在服务脚本相同的目录下新建cgi-bin文件夹,放置python的cgi脚本,getuser.py
#!coding:utf8 import cgi,cgitb import urllib2 form=cgi.FieldStorage() name=form.getvalue(‘user_name‘) age=form.getvalue(‘user_age‘) sex=form.getvalue(‘user_sex‘) data=name print "Content-type: text/html" print if name != None and len(name) > 0:14 print "<p id=name>%s</p>"%name15 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:
输入用户名,年龄,性别,点击提交或者什么都不输入
时间: 2024-10-24 06:51:58