2016-03-13 1 views
0

A l'intérieur du dossier cgi-bin, j'ai un experiment.cgi:JavaScript ne fonctionne pas avec Perl CGI

#!/usr/bin/perl -w 

use DBI; 
use CGI qw(:standard); 
require "../common/config.pl"; 

print header; 
print start_html(-title=>"Add Assignment"); 


print<<EOT; 
    <script type = "application/javascript" src = "experiment.js"></script> 
EOT 

print h2("Add New Automated Assignment"); 

# print<<AEOT; 
# <script>experiment();</script> 
# AEOT 
print end_html; 

Dans le même dossier que j'ai experiment.js

function experiment(){ 
    alert('ghello world'); 
} 

Cependant, il y a un problème avec l'inclusion du fichier experiment.js. Dans les fichiers journaux, je reçois l'erreur suivante:

End of script output before headers: experiment.js 

je cherchais cette erreur et il a été trouvé concernent les fichiers cgi. Donc, je suppose que apache2 interprète experiment.js comme un fichier cgi. Ai-je raison? Si oui, quelle est la bonne façon de le configurer pour que JavaScript et CGI puissent être utilisés ensemble?

+0

* Attention *: L'utilisation de CGI.pm est [non recommandée] (https://metacpan.org/pod/distribution/CGI/lib/CGI.pod#CGI.pm-HAS-BEEN-REMOVED-FROM -THE-PERL-CORE), il a été retiré de Perl Core. – Quentin

Répondre

3

I searched for this error and found it was relate to cgi files. So my guess is that apache2 is interpreting experiment.js as a cgi file. I am right in this?

Oui

If yes, what is the proper way to setup so that javascript and cgi could be used together.

Ne mettez pas les programmes non-CGI dans votre cgi-bin. Mettez-les avec le reste de vos fichiers statiques.

Vous devrez ajuster l'URL. src="/js/experiment.js" par exemple.