2

Ajax経由で呼び出されるperlスクリプトがあります。データベースに 3 つの値を書き込むだけです。コードは正常に動作します (値は正常に書き込まれます) が、「内部サーバー エラー」がスローされます。エラーログには、「スクリプト ヘッダーの途中終了」と表示されます。

アプリケーションに問題はありませんでした。必要に応じて機能し、数か月間機能しますが、他の何かをテストしているときに Firebug を介してエラーに気付きました。

そこで、問題を特定するためにスクリプトから perl を削除し始めました..そして、残りの 2 行だけになるまで続けました..シバンと終了..それでも 500 エラーが発生します。スクリプトをブラウザから直接実行すると、ブラウザ ウィンドウに 500 エラーが表示されます。コマンド プロンプトからは問題ありません。Apacheエラーログには何もありません。

サーバーの構成に問題はありません。何百もの perl スクリプトがあり、何年も実行されています。

4

2 に答える 2

8

最初に有効な CGI ヘッダーを出力する必要があります。

サーバーは、CGI スクリプトからの最初の出力が CGI ヘッダーであることを期待しています。print "Content-type: text/plain\n\n";通常、これはCGI.pm およびその派生物と同じくらい単純かもしれませんprint header()

于 2011-02-25T12:56:35.667 に答える
3

データベースに書き込んでいて、クライアントに何も返す必要がない場合、適切な応答はステータス 204 です。

print "Status: 204 No Response\n\n";

これにより、サーバーは完全なヘッダー セットを送信し、リクエストが成功し、処理するレスポンス ボディがないことをクライアント側に通知するため、サーバーは満足します。

于 2011-02-25T15:38:43.100 に答える