Мне нужна веб-страница, на которой вы нажимаете кнопку, используя AJAX, я получаю строку из скрипта Python, а затем отображаю эту строку в элементе HTML абзаца.
Я знаю, что могу сделать это, используя Python, WSGI & AJAX (теоретически я могу сделать это таким образом), но это слишком сложно. У меня есть опыт работы с CGI и python.
Так могу ли я сделать выше, используя CGI?
Если я могу, как работает скрипт Python, точно так же, как при обслуживании страницы с использованием CGI?
Это не работает:
import cgitb; cgitb.enable()
import cgi
import os
print "Content-Type: text/html\n"
input_data = cgi.FieldStorage()
print "hello"
Когда я нажимаю кнопку на своей странице, ничего не происходит, и мой CGI-сервер (который отлично работает для запросов cgi-страницы) выдает мне ошибку http 501.
Мой html & javascript:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="text/javascript">
<!--
function onTest( dest, params )
{
var xmlhttp;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById( "bb" ).innerHTML = xmlhttp.responseText;
}
}
xmlhttp.open("POST",dest,true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send( params );
}
-->
</script>
</head>
<body>
<p id="bb"> abcdef </p>
<a href="javascript:onTest('aaa.py', '')">Click it</a>
</body>
</html>