오늘은 첫 번째 CGI 프로그램을 작성하려고합니다. 그래서 나는 HTML 페이지를 가지고 있는데, 자바 스크립트 프로그램은 로컬에서 실행할 때 잘 동작한다. 그래서 다음 단계는 Apache 서버 (MacOSX에서 로컬)에서 실행하고 첫 번째 예제는 잘 작동하는 "Hello World"가 될 것입니다. 내가 "콘텐츠 유형 : 텍스트/html로"를 표시하려고 할 때콘텐츠를 반환하지 않는 Perl CGI 스크립트
문제가 은 내가 쓴 것은 :
#!/usr/bin/perl -wT
use strict ;
use warnings ;
use diagnostics ;
use CGI ;
use CGI::Ajax ;
print "Content-type: text/html \n\n";
sub initialize_html
{
my $html = <<HTML ;
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no"/>
<meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
<style type="text/css">
html { height: 100% }
body { height: 100%; margin: 0px; padding: 0px }
label { font-size:9px; text-align:center; color:#222; text-shadow:0 0 5px #fff; font-family:Helvetica, Arial, sans-serif; }
#map_canvas { height: 100% }
</style>
<title>Network Weathermap | hellas online</title>
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
<script type="text/javascript" src="js/network_weathermap.js"></script>
</head>
<body>
<div id="map_canvas"></div>
</body>
</html>
HTML
print $html . "\n" ;
}
#initialize_html() ;
sub parameterize_info_window
{
return "CGI \n" ;
}
my $cgi = new CGI() ;
my $ajax = new CGI::Ajax(describeInfoWindow => \¶meterize_info_window) ;
print $ajax->build_html($cgi, \&initialize_html) ;
$ajax->JSDEBUG(1) ;
반환 : "아니 머리/html 태그는 아무데도 삽입 없습니다. 어쨌든 자바 스크립트를 반환 "
어떻게이 문제를 극복 할 수 있습니까? 그것의 원인은 무엇입니까?
는
"no head/html"을 반환하는 요소는 무엇입니까? 콘솔? 당신의 로그 파일? 어떤 요청을 하시겠습니까? 귀하의 브라우저 주소 표시 줄에있는 URL을 누르거나 자바 스크립트에서 실제 아약스 요청을하고 있습니까? 제발 가르쳐주세요, 내가 perl을 위해 이것을 +1하고 싶습니다 :) –
안녕하세요, 고맙습니다. 브라우저 주소창에 "http : //localhost/cgi-bin/network_weathermap.cgi"을 입력하십시오. – user690182
javascript에는 실제 Ajax 요청이 없으며 "describeInfoWindow"라는 함수가 있으며 "parameterize_info_window"함수를 호출하려고합니다. – user690182