現在、 $.postを使ってPerlにリクエストを送り、帰ってきた値を表示するという事をしたいのですが、Internal Serverエラーとなりますが、どこにエラーがあるのかがわからない状態です。
実行権限などは与えています。
以下に書いたプログラムを貼りますので、間違いがありましたら是非教えていただきたいです。
HTML index.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Test Page</title>
<script type="text/javascript" src="../lib/jquery/jquery-1.3.2.js"></script>
<script type="text/javascript" src="./JS/test.js"></script>
</head>
<body>
<form id="form01">
<input type="text" name="title" id="title01" value="post"><br>
<input type="button" value="post" onClick="getValue()">
</form>
<div id="res_title"></div>
</body>
</html>
JavaScript test.js
function getValue(){
//フォームのデータ取得
var pos_title = $('#title01').attr('value');
//var comment = $('#comment').attr('value');
//フォームデータのPOST送信+コールバック
$.post("./cgi-bin/post.pl", {"title" : pos_title}, disp);
}
function disp(data){
$('div#res_title').html(data);
}
Perl post.pl
#!/usr/bin/perl -w
use strict;
use warnings;
my $formdata;
if ($ENV{'REQUEST_METHOD'} eq "GET") {
$formdata = $ENV{'QUERY_STRING'};
}
else {
read(STDIN, $formdata, $ENV{'CONTENT_LENGTH'});
}
return $formdata;
No.2ベストアンサー
- 回答日時:
return ではなく print が正解です。
#!/usr/bin/perl
use strict;
use warnings;
use CGI;
use CGI::Carp qw(fatalsToBrowser); # traceback
my $q = CGI->new;
print $q->header( -type => 'text/plain', -charset => 'UTF-8' );
print $q->param('title'), "\n";
#1さんの通り、text/htmlで出力してJS側でHTMLをパースするという方法も一般的です。
fatalsToBrowserを付けておけば、Internal Server Errorの代わりにエラーメッセージを表示してくれます。もちろんCGIスクリプト自体が実行できればの話ですが。
回答有難うございます。
具体的なコード、その他のアドバイス大変為になります。
CGI自体は実行できる事は確認しております。
早速実行に移りたいと思います。
有難うございます。
No.1
- 回答日時:
こんにちは、
>#!/usr/bin/perl -w
>
>use strict;
>use warnings;
>
>my $formdata;
>if ($ENV{'REQUEST_METHOD'} eq "GET") {
>$formdata = $ENV{'QUERY_STRING'};
>}
>else {
>read(STDIN, $formdata, $ENV{'CONTENT_LENGTH'});
>}
>return $formdata;
原因は別かも知れないので、自身はないですが、
サーバーサイドで何も出力されていない様子なので、
とりあえずレスポンスヘッダと何かしらを出力してみてはどうでしょうか。
#!/usr/bin/perl
use strict;
use warnings;
use CGI;
use Data::Dumper;
my $q = CGI->new();
print $q->header('text/plain') , Dumper {$q->Vars};
返信が遅くなり大変申し訳ございません。
アドバイス有難うございます。
仰られた通りサーバサイドで何も出力されていないようです。
具体的なコードも付けていただき大変為になります。
教えてくださった内容を早速試してみます。
有難うございます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- JavaScript switch文のswitch(n)の部分を複数の値にするか、if文に変えてほしいです。 1 2022/07/27 17:18
- JavaScript セレクトボックスを2つ設けて選択して初めてメッセを表示 1 2022/07/27 12:15
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- AJAX JavascriptからPHPへのAjax通信でnullが返ってくる 3 2022/08/03 22:00
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
- JavaScript jqueryを使ったスムーススクロールのコードを書いたのですが、HTMLコード内にある、a butt 2 2022/04/14 10:59
- HTML・CSS 私の能力からして間違っていないような気がします。 4 2022/09/30 13:24
- PHP PHPでCookieを使った訪問回数について 1 2023/05/28 14:10
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/07 21:04
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
jQueryでloadした部分に.jsが効...
-
インラインフレームを自動更新...
-
XHTMLで外部JSファイルを読み込...
-
jQuery toggle() 戻るで開いた...
-
jQueryで追加した要素がマウス...
-
フレーム内の要素へのXPATHはど...
-
JavascriptからPHPへのAjax通信...
-
同一ページ移動時ハンバーガー...
-
要素内を常に一番下を表示させたい
-
Googleマップに複数のピンを立...
-
変数の内容を別functionに渡したい
-
【再質問】計算(入数*単価)...
-
Selenium4でボタンをクリックで...
-
パソコンで動くjavascriptがス...
-
階層別の組織図の自動作成について
-
jQueryのblockUIをformのボタン...
-
jquery.csv2table.jsに検索窓
-
jQueryを使いformでsubmitした...
-
<input>のvalue値をプルダウン...
-
Selenium Basicの件
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
インラインフレームを自動更新...
-
jQuery toggle() 戻るで開いた...
-
jQueryで追加した要素がマウス...
-
AjaxでSJISファイル読み込みす...
-
$.postとPerlのデータ受け渡し...
-
jQueryでloadした部分に.jsが効...
-
Folder.selectDialog()について
-
リンク元のURLのパラメータでペ...
-
div要素の入れ替え。半透明イメ...
-
一定時間ごとに表示内容を切り...
-
毎日午前0時にhtmlを切り替えた...
-
Safariでの onload="getData()"...
-
jQuery loadで要素差し替え
-
phpからget送信で持ってきたデ...
-
Fire Foxで作動しないscriptが...
-
location.replaceでの移動
-
XMLHttpRequest()で、読み込む...
-
日付が変わると自動更新
-
jQueryのloadメソッドが時々反...
-
slideToggleを複数のボタンで適...
おすすめ情報