当前位置: 首页 > 面试题库 >

AJAX发布到Python cgi

从烈
2023-03-14
问题内容

我已经安装了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
}


 类似资料:
  • 问题内容: 好吧,我已经建立了我的json字符串,但是我不确定下一步该怎么做? 在我的php文件中,我试图将dataString写入文本文件,这样我可以看到它通过ok,但是文本文件中什么都没有!我在客户端或PHP方面做错了什么,我的php代码: 问题答案: 您为什么不尝试像这样构造数据 然后在您的AJAX通话中 现在,您的PHP脚本可以将数据作为多维数组处理

  • 问题内容: 我正在尝试在C#上检索JSON对象,这是我的JavasSciprt帖子,但无法在代码隐藏中处理它,谢谢! 我试图检索数据,如: 问题答案: 这是Encosia.com提供的示例(我添加了一个form参数)。您不需要访问-您可以改用方法参数。 代码隐藏 Java脚本

  • 问题内容: 我的问题是我取回了一些数据,但似乎无法显示它。 问题答案: 应该是您收到的内容的类型,但应该是您要发送的内容的哑剧类型,以下应该可以:

  • 我有一个在客户端使用自动完成功能的谷歌地图查询——我试图在用户选择“place”对象后将其转移到服务器上——我可以在客户端解析它,但我认为在服务器端进行更容易。我通过浏览器“网络”检查验证它是否通过正确的json对象发送,但服务器端我无法获得正确的对象。我尝试了各种请求的排列。*我可以找到它,但要么一个也得不到,要么一个

  • 问题内容: 我正在尝试将表单数据发布到Google电子表格。当前,如果表单经过验证,则会发生以下情况: 我使用成功设置来验证我的表单数据已正确序列化(正确)并且成功。但是,我的Google电子表格未更新(没有数据通过)。我在此处使用了示例代码,将doGet更改为doPost(http://mashe.hawksey.info/2011/10/google- spreadsheets-as-a-da

  • 问题内容: 我的设置是这样的(为清楚起见简化了): 因此,每个方法(如果单击)都将淡入内联内容,但具有“ fb_method”类的锚点除外,因为它需要先执行AJAX请求,然后再附加到其内容容器中。 所以我的jQuery是这样的: 所以我想要的是,当用户第一次单击fb_method按钮时,它将请求AJAX。但是,如果他们突然改变主意并单击其他方法,我想中止先前的AJAX请求。 我通过Firebug跟