【问题标题】:Python, how to recive ajax call data?Python,如何接收ajax调用数据?
【发布时间】:2017-09-26 05:25:37
【问题描述】:

我对 python 接收 ajax 数据感到很困惑......

我不想使用flask,因为我需要从php文件和我的网站接收数据,使用80端口。

我搜索了谷歌,发现我可以用 cgi 做到这一点,但我不确定这是不是正确的方法。

我使用了示例,我的 ajax 调用如下所示:

$('#clickme').click(function(){
    $.ajax({
        type: "POST",
        url: "brute.py",
        datatype : "json",
        data: { name: "nitin"}
      })
      .done(function(msg) {
           console.log(msg);
});
});

我的python文件brute.py

import json
import sys
import cgi
import cgitb

sys.stdout.write("Content-Type: application/x-www-form-urlencoded")
sys.stdout.write("\n") 
sys.stdout.write("\n")
form = cgi.FieldStorage()
name = form.getvalue('name')
print(name)

我想接收数据并将其用于我的其他脚本行,例如:

url2 = "http://www.example.ee/admin/index.php?controller=AdminPdf&token=35b276c05aa6f5eb516737a8d565eb66&submitAction=generateInvoicePDF&id_order={}".format(name) // Like this, i know for sting i use %s

当我单击 php 文件中的按钮时,我会在控制台中获得 brute.py 的整个代码,而当我试图在终端上执行我的脚本时,会被打印出来:

Content-Type: application/x-www-form-urlencoded

None

我想在终端上执行脚本并有一个循环等待按钮被按下以接收数据

我的问题是,我该如何存档?

【问题讨论】:

  • “我搜索了谷歌”
  • 是的……儿子。但是,是的,我的意思是“我用谷歌搜索”

标签: php python json ajax cgi


【解决方案1】:

我认为关键是您没有意识到您可以在另一个端口上使用 flask 或任何其他 http 服务器库,例如 8080

所以你需要做的就是在python端启动一个http服务器,然后向它发送请求。

$('#clickme').click(function(){
    $.ajax({
        type: "POST",
        url: "127.0.0.1:8080/xxxx", //your python end http server's router.
        datatype : "json",
        data: { name: "nitin"}
      })
      .done(function(msg) {
           console.log(msg);
});
});

【讨论】:

  • 我无法更改 url 的端口,也无法在烧瓶中呈现页面,因为我使用的是 php
  • @Somepub 你是什么意思你不能改变端口?你不需要在php端更改端口,只需在python端在一个未使用的端口上启动另一个http服务器。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-12-21
  • 1970-01-01
  • 2011-11-26
  • 2015-11-09
  • 1970-01-01
  • 1970-01-01
  • 2013-04-03
相关资源
最近更新 更多