2009-06-10 9 views

Répondre

2

Trois façons: POST, GET ou cookies. que vous utilisez dépend de votre situation. POST: Inclure un formulaire sur votre page avec deux champs cachés.

Lorsqu'un événement se produit, remplissez les champs cachés avec vos variables JS et soumettez le formulaire à votre programme CGI. GET: A-t-on jeté les variables sur l'URL par JS? lorsque l'utilisateur clique sur un lien, il active une fonction JS. la fonction JS envoie le navigateur à "cgi-prog.cgi? JSvar1 = foo & JSvar2 = bar"

cookies: JS définit un cookie sur la machine de l'utilisateur une fois qu'il a déterminé les variables. Perl lit ce cookie pour obtenir les variables.

+0

Bon Pour Déclencher mon esprit à penser différemment. Merci suveshpratapa – joe

2

les pistes de prog cgi sur le serveur et votre javascript est dans le navigateur, non? Peut-être que vous devriez passer la variable au serveur via l'URL (GET) ou HTTP Post?

2

Les méthodes suggérées par d'autres personnes telles que HTTP GET, POST, chaîne de requête, champs de formulaire cachés et cookies sont parfaitement adaptées. Mais pour plus de finesse et d'interactivité, pensez à utiliser AJAX.

Nous avons une application Web qui utilise le Javascript du côté du navigateur qui envoie des données au script côté serveur via AJAX quand quelque chose est cliqué. Est-ce similaire à ce que vous faites? Si oui, alors AJAX est le chemin à parcourir.

L'exemple ci-dessous utilise GET pour bourrer renvoyé à un script CGI Perl (situé à « url »):

var request = new XMLHttpRequest(); 
request.open("GET", url, false); 
request.send(null); 

if(!request.getResponseHeader("Date")) { 
var cached = request; 
request = new XMLHttpRequest(); 
var ifModifiedSince = cached.getResponseHeader("Last-Modified"); 
ifModifiedSince = (ifModifiedSince) ? 
     ifModifiedSince : new Date(0); // January 1, 1970 
    request.open("GET", url, false); 
    request.setRequestHeader("If-Modified-Since", ifModifiedSince); 
    request.send(""); 
    if(request.status == 304) { 
    request = cached; 
    } 
} 

Bien sûr, ne pas écrire jamais ce genre de choses vous-même. C'est juste pour illustrer ce qui se passe. Toujours utiliser une bonne bibliothèque Javascript pour faire les choses AJAX. Il y en a beaucoup de bons là-bas: List of modern AJAX Libraries and Frameworks

+0

Réponse et remerciements intéressants. Enfin je peux Cette méthode qui est bonne – joe

+0

Je vais utiliser cette méthode. – joe

+0

De rien. Nous avons porté une application Web assez complexe et ancienne qui n'utilise que des champs cachés et des chaînes de requête. Nous utilisons jquery et d'autres éléments du côté client pour intercepter le formulaire submit et le soumettre via XMLHTTPRequest. L'avantage est que le script côté serveur existant n'a jamais été modifié pendant le port, seulement le côté HTML du navigateur et Javascript. (Couche d'interface utilisateur) – GeneQ

Questions connexes