我已经安装了Apache2并且Python运行正常。
我有一个问题。我有两页。
一个Python页面,另一个带有JQuery的HTML页面,我可以将Src插入到Google jquery链接中。
有人可以告诉我如何使我的ajax帖子正常工作。
$(function() { alert('Im going to start processing'); $.ajax({ url: "saveList.py", type: "post", data: {'param':{"hello":"world"}}, dataType: "application/json", success : function(response) { alert(response); } }); });
和Python代码
import sys import json def index(req): result = {'success':'true','message':'The Command Completed Successfully'}; data = sys.stdin.read(); myjson = json.loads(data); return str(myjson);
这是一个示例html文件和随附的python CGI脚本,可以助您一臂之力:
使用此html:
<html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> <title>test</title> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> <script> $(function() { $('#clickme').click(function(){ alert('Im going to start processing'); $.ajax({ url: "/scripts/ajaxpost.py", type: "post", datatype:"json", data: {'key':'value','key2':'value2'}, success: function(response){ alert(response.message); alert(response.keys); } }); }); }); </script> </head> <body> <button id="clickme"> click me </button> </body> </html>
和这个脚本:
#!/usr/bin/env python import sys import json import cgi fs = cgi.FieldStorage() sys.stdout.write("Content-Type: application/json") sys.stdout.write("\n") sys.stdout.write("\n") result = {} result['success'] = True result['message'] = "The command Completed Successfully" result['keys'] = ",".join(fs.keys()) d = {} for k in fs.keys(): d[k] = fs.getvalue(k) result['data'] = d sys.stdout.write(json.dumps(result,indent=1)) sys.stdout.write("\n") sys.stdout.close()
单击按钮后,您可以看到cgi脚本返回:
{ "keys": "key2,key", "message": "The command Completed Successfully", "data": { "key2": "value2", "key": "value" }, "success": true }