AJAX发布到Python cgi [重复]

发布于 2021-01-29 15:12:51

这个问题已经在这里有了答案

8年前关闭。

可能重复:将
JSON发布到Python CGI

我已经安装了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);
关注者
0
被浏览
35
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    这是一个示例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
    }
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看