繁体   English   中英

从python cgi执行Javascript时出现问题

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM