Post JSON to Python CGI
ajax, html, jquery, python
Solution
OK, let's move to your updated question.
First, you should pass Ajax data property in string representation. Then, since you mix `dataType` and `contentType` properties, change `dataType` value to `"json"`:
$.ajax({
url: "saveList.py",
type: "post",
data: JSON.stringify({'param':{"hello":"world"}}),
dataType: "json",
success: function(response) {
alert(response);
}
});
Finally, modify your code a bit to work with JSON request as follows:
#!/usr/bin/python
import sys, json
result = {'success':'true','message':'The Command Completed Successfully'};
myjson = json.load(sys.stdin)
# Do something with 'myjson' object
print 'Content-Type: application/json\n\n'
print json.dumps(result) # or "json.dump(result, sys.stdout)"
As a result, in the `success` handler of Ajax request you will receive object with `success` and `message` properties.
Problem
I have got Apache2 Installed and Python working. I am having a problem though. I have two pages. One a Python Page and the other an Html Page with JQuery Can someone please tell me how I can get my ajax post to work correctly. ``` <html> <head> </head> <body> <script> $(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); } }); }); </script> </body> </html> ``` And the Python Code ``` 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); ```