将数据发送到python-cgi脚本,以便使用纯javascript从浏览器进行处理
send data to a python cgi script for processing from browser using pure javascript
我有一个html测试文件,其中包含以下
<!doctype html>
<html lang="en">
<meta charset="utf-8">
<body>
<script type="text/javascript">
var httprequest=new XMLHttpRequest();
httprequest.open("POST","hello.cgi",true);
httprequest.onload=function(){
if(httprequest.status==200){
alert("");
}// end of if
}//end of onload
var content={"hello":"world"};
httprequest.send(JSON.stringify(content));
alert(httprequest.responseText)
</script
</body>
</html>
</doctype>
在这种情况下,我试图发送数据{"你好":"世界"};到python cgi脚本
这是我的python脚本,它可以很好地处理从<form>
html标签提交的数据
#!/usr/bin/python
try:
import sys
import cgi
import traceback
print("Content-type: text/html'n'n")
print "<h1>YES</h1>"
formData = cgi.FieldStorage()
print(formData)
print(s)
except Exception as e:
print(e.message)
print(traceback.print_exc())
当我发送数据{"hello":"world"}
时,我的浏览器警报框显示没有从cgi脚本返回的数据。
正如cgi脚本中所反映的,我正在尝试打印"YES"并打印从javascript发送的数据。
我发现了几个与使用$.ajax
相关的问题,但还没有发现使用XMLHttpRequest()
的方法
问题
如何使用纯javascript(无jquery)将数据发送到python-cgi脚本以从浏览器进行处理
您正在执行的HTTP请求在自己的时间内发生。对httprequest.send()
的调用启动操作,但该函数调用几乎立即返回,而且肯定在远程服务器响应之前返回。这种异步行为是JavaScript环境中的一个基本事实。
"onload"回调的全部原因是,当HTTP请求实际完成时,您可以编写代码。当结果可用时,浏览器将使用结果调用该函数。这可能需要100毫秒,或者10秒;这完全取决于服务器和网络。
相关文章:
- Javascript/浏览器加密:使用Yubiky
- Javascript浏览器检测与IE 11
- Javascript浏览器通知不起作用
- navigator.userAgent检测javascript浏览器的语法说明
- javascript浏览器超时第二个计时器
- 任何学习Javascript浏览器对象模型的好地方
- 在JavaScript(浏览器端)中解码URL Safe Base64
- JavaScript 浏览器兼容性问题
- Javascript 浏览器关闭事件
- JavaScript浏览器相关的类,对象和函数
- Javascript 浏览器插件已启用
- php:例程javascript浏览器直到最后才出现
- 为什么非Javascript浏览器中的Javascript代码有额外的注释
- 来自第三方黑客的基于javascript浏览器的游戏有多安全
- Android 4.1+(Javascript浏览器):如何禁用旋转缩放
- 使用基于javascript浏览器的midi.js创建鼓声
- JavaScript浏览器代理重定向
- 是否有可能从javascript/浏览器阻止OS X休眠?
- 为什么这个JavaScript浏览器
- Javascript浏览器历史记录列表