Twisted:我无法获得Ajax“data”参数

时间:2016-08-28 08:59:55

标签: javascript ajax twisted

这些参数触发了ajax“POST”:

function test22(portnb){
    console.log(portnb)
    $.ajax({url: "action",
            dataType : 'html',
            type: "POST",
            data: portnb,
            success: function( strData2 ){;
            console.log(strData2);
            $("#content3").html(strData2);
            }
    });
};

它由一个扭曲的python脚本处理:(见下面的interresting部分)

class Test3Handler(resource.Resource):
    isLeaf = True

    def __init__(self):
        resource.Resource.__init__(self)
    def render_POST(self, request):
       argo = request.content.getvalue()
       print( argo )
       retp = "<ul><li>"
       retp += argo
       retp += "</ul>"
       print (retp)
       return retp
if __name__ == "__main__":
    import sys
    from twisted.internet import reactor
    testHandler = TestHandler()
    test2Handler = Test2Handler()
    test3Handler = Test3Handler()
    root = static.File('/home/pi/web4')
    root.putChild('test', testHandler)
    root.putChild('test2', test2Handler)
    root.putChild('action', test3Handler)
    reactor.listenTCP(8082, server.Site(root))
    reactor.run()

问题是我无法获取Ajax发送的“data”参数(data:portnb)。变量“argo”为空。

我是Python / Ajax的新手。 你能帮我解决这个问题吗? 稍后开发更复杂的东西会非常有帮助。 谢谢 吉勒

2 个答案:

答案 0 :(得分:0)

portnb = 23.当Ajax“data:{portnb}”时,python脚本收到“portnb = 23”。我只需要23,而不是portnb = 23.有没有一个简单的方法来做到这一点?谢谢,吉尔斯

答案 1 :(得分:-1)

您应该将dataType设置为json,并在数据字段中发送{ params: portnb }等对象