2012-01-24 69 views
-1

我试图创建一个链接,当它被点击时,它会转到它应该的网站,但它也会运行一个cgi脚本。我发现了不同的例子,但我仍然不完全理解它。通过JavaScript访问cgi脚本

从本质上说,我有两个问题:

  1. 我在哪里可以承载脚本,以便我可以访问它?
  2. 我该如何访问它?
+0

我不知道我选择的标签是否正确.... –

回答

1

我可以在哪里托管该脚本以便我可以访问它?

如果你想从JavaScript访问它,然后它必须是在同一个原点(即主机名和端口)作为JavaScript在运行页面。

如何访问呢?

您可以忘记JavaScript,定期进行链接,然后让CGI执行302重定向,也可以使用Ajax

请注意计时问题。在浏览器发出Ajax请求之前,浏览器可能会转到下一个URL。重定向可能是更好的方法。

+0

好的,这似乎是合法的... +1 –

+0

顺便说一句,如果您需要让javascript从另一个域(主机名和端口)获取某些内容,并且您控制了服务器,则可以使用跨源资源共享。阅读:http://enable-cors.org/ –

1
<script> 
function callYourCGI(){ 
    var i = new Image(); 
    i.src = "your-cgi-url?name=value&name2=value2"; 
} 
</script> 
<a href="the-next-document.html" onclick="callYourCGI()"> 

Image对象是HTML DOM的一部分。它允许您在HTML页面中操作图像。在此处阅读:http://www.javascriptkit.com/jsref/image.shtml

脚本正在创建一个图像对象,然后将您的CGI脚本的URL分配给SRC属性。这使得浏览器执行对URL内容的获取请求。在这种情况下,您不会显示图像对象,所以CGI脚本返回的内容不需要是真实图像。但如果可以的话,如果你想的话。无论哪种方式,其副作用是您的CGI脚本被调用,并根据需要使用一些参数。这种方法的一个优点是它不违反相同的原始策略,因为图像允许从任何地方加载。

+0

谢谢,但我仍然不确定这是什么说...像什么是“图像”,什么是我.src行的意思是? –

+0

什么是链接呢?请记住,我在这是一个n00b。 –

+0

@CodeAdmiral - 在尝试解决JS的特定问题之前,如果您的JavaScript技能处于这个级别,那么[您应该学习基本知识](http://www.w3.org/wiki/Web_Standards_Curriculum#JavaScript_core_skills)。 – Quentin