我在服务器上运行Python程序并希望提供客户端接口。我正在使用一个简单的Web服务器(来自O'Reilly Programming Python书籍)。
我可以毫无问题地生成HTML页面。但是现在我想生成一个页面,其中包含一些JavaScript,用于在将其返回到服务器上的python应用程序之前验证客户端上的用户输入。 python代码中有问题的部分是:
htmlcode = """
`<head`> ## Heading ##
`<title`>PAROT - Report Options`</title`>
`<script type="text/javascript" src="FormChecks.js"`>
`</script`>
`</head`>
`<body`>
`<form method=POST action="cgiRunQuery.py"`>"""'
当我发送到服务器时,它会抱怨:
tclogin1 - - [08/Dec/2010 10:55:02] "GET /cgi-bin/FormChecks.js HTTP/1.1" 200 -
Traceback (most recent call last):
File "/usr/lib/python2.6/CGIHTTPServer.py", line 255, in run_cgi
os.execve(scriptfile, args, os.environ)
OSError: [Errno 8] Exec format error
tclogin1 - - [08/Dec/2010 10:55:02] CGI script exit status 0x7f00
看起来好像python正在尝试执行JavaScript。如果我创建一个包含生成的html代码(包括JavaScript)的静态html页面,那么一切正常。
答案 0 :(得分:3)
您的Web服务器认为FormChecks.js
是作为CGI脚本执行的,当然不是。将其移至cgi-bin/
之外,并相应地更改script
代码中的路径。您也可以尝试从中删除可执行位。
答案 1 :(得分:0)
那些反对的内容是什么?
错误似乎只是在结束三重报价结尾处有一个额外的单引号。
答案 2 :(得分:0)
首先。感谢大家花时间回答 -
我不得不进行所有后退操作,否则Stack Overflow将无法显示我的HTML代码。
如果我从cgi-bin目录中删除FormCheck.js,我会从网络服务器获取以下内容:
tclogin1 - - [08 / Dec / 2010 12:42:17]“POST /cgi-bin/cgiGetReportOptions.py HTTP / 1.1”200 - tclogin1 - - [08 / Dec / 2010 12:42:17]代码404,消息没有这样的CGI脚本('/cgi-bin/FormChecks.js') tclogin1 - - [08 / Dec / 2010 12:42:17]“GET /cgi-bin/FormChecks.js HTTP / 1.1”404 -
服务器正在看
<script type="text/javascript" src="FormChecks.js">
由于某种原因尝试将javascript文件作为CGI脚本运行
Arghhhhhhhhhhhhhhhhhhhh !!!
我已经玩了一些,问题是:
<script type="text/javascript" src="/FormChecks.js">
我在FormChecks.js之前错过了“/”。
感谢所有建议 - 现在解决下一个问题: - )