我試圖創建一個鏈接,當它被點擊時,它會轉到它應該的網站,但它也會運行一個cgi腳本。我發現了不同的例子,但我仍然不完全理解它。通過JavaScript訪問cgi腳本
從本質上說,我有兩個問題:
- 我在哪裏可以承載腳本,以便我可以訪問它?
- 我該如何訪問它?
我試圖創建一個鏈接,當它被點擊時,它會轉到它應該的網站,但它也會運行一個cgi腳本。我發現了不同的例子,但我仍然不完全理解它。通過JavaScript訪問cgi腳本
從本質上說,我有兩個問題:
我可以在哪裏託管該腳本以便我可以訪問它?
如果你想從JavaScript訪問它,然後它必須是在同一個原點(即主機名和端口)作爲JavaScript在運行頁面。
如何訪問呢?
您可以忘記JavaScript,定期進行鏈接,然後讓CGI執行302重定向,也可以使用Ajax。
請注意計時問題。在瀏覽器發出Ajax請求之前,瀏覽器可能會轉到下一個URL。重定向可能是更好的方法。
好的,這似乎是合法的... +1 –
順便說一句,如果您需要讓javascript從另一個域(主機名和端口)獲取某些內容,並且您控制了服務器,則可以使用跨源資源共享。閱讀:http://enable-cors.org/ –
<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腳本被調用,並根據需要使用一些參數。這種方法的一個優點是它不違反相同的原始策略,因爲圖像允許從任何地方加載。
謝謝,但我仍然不確定這是什麼說...像什麼是「圖像」,什麼是我.src行的意思是? –
什麼是鏈接呢?請記住,我在這是一個n00b。 –
@CodeAdmiral - 在嘗試解決JS的特定問題之前,如果您的JavaScript技能處於這個級別,那麼[您應該學習基本知識](http://www.w3.org/wiki/Web_Standards_Curriculum#JavaScript_core_skills)。 – Quentin
我不知道我選擇的標籤是否正確.... –