了解如何使用CGI和POST
Understanding how to use CGI and POST
我试图了解如何使用Python和javascript,以便我可以使用POST/GET命令。我有一个按钮,它向服务器端python发送请求,并且应该返回一个值。我知道如何打印出一个响应,但我想传递一个值给一个javascript变量,而不是只是打印东西的响应。
例如,我的javascript使用jqueryPOST
函数向python文件发送一个字符串:
<script>
function send(){
$.ajax({
type: "POST",
url: "pythondb.py",
data:{username: 'william'},
async: false,
success: function(){
alert('response received')
},
dataType:'json'
});
}
</script>
然后使用python cgi模块,我可以打印出username
的值:
#!/usr/bin/env python
import cgi
print "Content-Type: text/html"
print
form = cgi.FieldStorage()
print form.getvalue("username")
然而,我没有以相同的方式接收数据,php echo函数的工作原理。是否有一个相当于'echo'的python cgi模块?
我读过这个问题,它解释了不同的python框架,可以用来在浏览器和服务器之间进行通信;目前我希望保持事情尽可能简单,并使用cgi模块,但我不知道这是否是最好的选择。
您的success:
函数可以接受一个参数,jQuery将AJAX请求的响应内容传递给该参数。试试这个,看看会发生什么:
<script>
function send(){
$.ajax({
type: "POST",
url: "pythondb.py",
data:{username: 'william'},
async: false,
success: function(body){
alert('response received: ' + body);
},
dataType:'json'
});
}
</script>
注:你为什么使用async: false
?这有点违背了AJAX的大部分意义。
您的json格式不正确。
根据http://api.jquery.com/jquery.parsejson/,
- 用户名需要加引号
- 只能使用双引号
它看起来像这样:
{"username": "william"}
此外,您的警报应该在的末尾有一个分号。我不能保证这个答案将解决您的问题,但可能是您的数据根本没有传递给cgi。
相关文章:
- 如何使用WCF服务和javascript表单post上传.doc文件
- Jquery POST未填充数组
- 如何在php文件中获取$.post-ajax传递的值
- 在POST中将html表作为csv提交
- JS表单提交"无法使用Chrome数据保护程序加载此页面.尝试重新加载页面.调试信息:POST CISmtuK
- 如何使用post方法从方法上传文件
- Django: AJAX + CSRF POST gives 403
- AJAX不会在文件上传后重定向到网页-POST方法
- 下载使用POST数据动态生成的文件
- 如何使用自定义标头跨域执行AJAX POST
- 错误405:向Java控制器(Ajax)发送JSON时找不到POST方法
- jQuery在输入下验证post错误消息
- 在文本区域POST后解码JSON
- Node.js - POST to iFrame?
- 中止POST XHR可靠
- 当method=post时,jQueryAjax返回404
- 为什么cgi-POST数据被篡改和截断
- 了解如何使用CGI和POST
- 在我的Python CGI脚本中,我如何将用户在表单中输入的数据通过POST请求上传的文件保存到磁盘
- 使用XMLHttpRequest将数据POST到CGI文件会导致BadHeader