2010-12-08 19 views
1

私はサーバー上でPythonプログラムを実行しており、クライアント側のインターフェイスを提供したいと考えています。私はシンプルなWebサーバーを使っています(O'Reilly Programming Pythonの本から)。python cgiからJavascriptを実行する際の問題

問題なくHTMLページを生成できます。しかし今、私は、サーバー上のPythonアプリケーションに返す前に、クライアント上のユーザー入力を検証するJavaScriptを含むページを生成したいと考えています。 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

どのように「これをサーバーに送信しますか」? –

答えて

0

これらのバッククックは何ですか?

エラーは単純に、あなたの最後の三重引用符の最後に一重引用符が追加されているようです。

+0

おそらく、プリミティブなHTML生成エンジンに、送信前に文字をエンコードするべきではないことを示すものです。 –

3

あなたのWebサーバは、FormChecks.jsはCGIスクリプトとして実行されることを意図していますが、もちろんそうではありません。 cgi-bin/の外に移動し、scriptタグのパスを適宜変更してください。代わりに実行可能ビットを削除することもできます。

0

まず、返信する時間を取ってくれてありがとうございます。

私はバックチックを入れていましたが、スタックオーバーフローでHTMLコードが表示されませんでした。

私はCGI-binディレクトリからFormCheck.jsを削除した場合、私はウェブサーバから次を得る:

tclogin1 - - [08/12月/ 2010年12時42分17秒]「POST/CGI-このCGIスクリプトはありません( '/cgi-bin/FormChecks.js') tclogin1 - -/bin/cgiGetReportOptions.py HTTP/1.1 "200 - tclogin1 - - [08/Dec/2010 12:42:17] - [08/12月/ 2010年12時42分17秒] "GET /cgi-bin/FormChecks.js HTTP/1.1" 404 -

サーバーは

<script type="text/javascript" src="FormChecks.js"> 
を見ています

とCGIスクリプト

ArghhhhhhhhhhhhhhhhhhhhとしてのJavaScriptファイルを実行しようとしているいくつかの理由のために!

私はいくつかのより多くの問題だったの周りにプレイしました:

<script type="text/javascript" src="/FormChecks.js"> 

私はFormChecks.js前に「/」が欠落していました。

次の問題を今すぐ解決してくれてありがとう:-)

+3

これはコメントです。あなたの質問に「答えてください」というコメントはしないでください。オリジナルを更新するだけです。 –

関連する問題