2012-01-24 66 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