[英]problem executing Javascript from a python cgi
我正在服务器上运行Python程序,并想提供一个客户端接口。 我正在使用一个简单的Web服务器(来自O'Reilly编程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页面,则一切正常。
您的Web服务器认为FormChecks.js
是要作为CGI脚本执行的,当然不是。 将其移至cgi-bin/
之外,并相应地更改script
标记中的路径。 您也可以尝试从其中删除可执行文件。
这些反引号是做什么用的?
错误似乎很简单,您在结束的三引号末尾有一个额外的单引号。
首先。 感谢大家花时间回答-
我不得不,但是所有后面的勾号,否则Stack Overflow不会显示我的HTML代码。
如果从cgi-bin目录中删除FormCheck.js,则会从Web服务器获得以下信息:
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之前缺少“ /”。
感谢您的所有建议-现在就解决下一个问题:-)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.