2012-12-19 211 views
1

我有一個JS腳本託管在域X上,但嵌入在域Y.我想發送一些數據返回到域X上的頁面(可能通過POST)。通過JavaScript提交數據的最簡單方法是什麼?

我試過尋找解決方案,但我發現的大部分信息都涉及到使用jQuery。是否有可能通過普通的JavaScript來做到這一點?我應該擔心跨站點腳本問題嗎?

基本上,我嘗試了類似於谷歌分析(一個小工具發送數據回家)的東西。我可以處理這些數據,但是我的JavaScript體驗非常有限。

+0

你想如何發送它? AJAX? – 11684

+1

Google Analytics等系統通過從日誌記錄服務器獲取某些內容(如1x1 GIF),並在查詢參數中傳遞附加數據。服務器記錄GET請求。 –

+2

jQuery使用的是簡單的Javascript ...讓我改述一下:jQuery是平坦的Javascript – Amberlamps

回答

2

提交數據最簡單的方法是使用form。您可以創建一個表格,設置action,method屬性,添加input s的數據,設置它的值,然後做form.submit()。爲了不將用戶重定向到您的網站,您還應該填寫具有隱藏iframe名稱的target屬性。在這種情況下,表格將被「嵌入」。頁面無法重新加載,但您的頁面將被加載到iframe中(隱藏)。此方法允許您執行POST請求。

如果您只需要GET請求,事情就更簡單了:在JS中創建一個Image對象,並使用請求的url設置src字段。我不知道如何交叉瀏覽器和穩定這個解決方案,但據我記得,它的工作原理。實際上,您可以創建頁面並添加其他任何加載其內容的元素(樣式,腳本(並在響應評估時放置一些代碼))。

關於跨域的東西:

  • 在GET請求的情況下,你可以將信息發送和接收它。
  • 在POST請求的情況下,沒有(對我來說)獲得響應的方式。

我建議你閱讀一些關於JavaScript和HTML表單中的DOM操作的知識,以瞭解它的機制以及爲了模擬JS中的表單提交(基本上我在前兩段中描述過)要做些什麼。

相關問題