-3

Main.plテキストを読み取り、XML ドキュメントを出力するPerl スクリプト があります。Unix サーバーに SSH で接続し、コマンド ラインからスクリプトを実行すると、正しい XML が出力されます。しかしhttp://localhost/Main2.pl、ブラウザでアクセスすると、Perl コードが表示されるだけで、jQuery 対応の Web ページ (を使用) で POST しようとすると、$.post("http://localhost/Main2.pl")機能しません。

私は何を間違っていますか?

Perl スクリプトはhttp://moxie.cs.oswego.edu/~cmunger2/coursework/Poetry_project/Main2.plにあります。それを使用しようとしているページはhttp://moxie.cs.oswego.edu/~cmunger2/coursework/Poetry_project/index.htmlです。

4

2 に答える 2

3

Perl スクリプトはサーバー上で実行され、JavaScript はユーザーのマシン上で実行されます。このため、スクリプトを実行できるように Web サーバーを構成し、スクリプトを実行できるパスを設定する必要があります。これは、Web から実行すると、基本的に誰でもコードを実行できるようになるためです。これは大きなセキュリティ上の問題になる可能性があります。特権ユーザーとしてログインしているため、SSH でスクリプトを正常に実行できます。前述のセキュリティ上の理由から、Web 権限はロックダウンされています。

一般に、ほとんどの Web サーバーでは、Perl スクリプトをデフォルト/cgi-binディレクトリから実行することができ、通常は.cgi拡張子を付けて名前が付けられます。.cgiスクリプトとまったく同じである場合でも、サーバーがスクリプトの実行のみを許可する場合があり.plます。

Web サーバーから実行可能ファイルを構成する方法を調べます。または、Web ホストを使用している (または大学のサーバーを使用しているように見える) 場合は、実行可能ファイルへのアクセスを構成する方法を調べます。などのデフォルトの実行可能領域がすでに存在する可能性があります/cgi-bin

特定の大学のサーバーが実行可能ファイルへのアクセスを許可していない可能性は十分にありますが、調べたり聞いたりするまではわかりません。ディレクトリの存在/不在は、/cgi-bin明らかな兆候である可能性があります。

于 2013-02-20T23:45:23.233 に答える
2

サーバーは、その場所からCGIスクリプトを実行するように構成されていません。

さらに、たとえそうであった500としても、Perlスクリプトは適切なCGIスクリプトではないため、エラーが発生します。少なくとも、返すコンテンツタイプと、XMLドキュメントのエンコーディングと一致するエンコーディングを指定するヘッダーを出力する必要があります。

于 2013-02-20T23:52:32.450 に答える