我想寫一個書籤,目標是要能夠從任何網站X提交資料(原始頁他們是點擊書籤時)來我的網站服務器,同時在現場X.住如何獲得使用Bookmarklet的Ajax並繞過Javascript同源策略?
理想,我將能夠發回一個響應並將它彈出某處,但這不是必需的。
我一直在遇到相同的源策略問題 - 即從站點X開始,XMLHttpRequests只能由站點X的域啓動。
有沒有人知道一種解決方法(或他們可以指向我的教程)?一些帶書籤的Ajax?
非常感謝!
我想寫一個書籤,目標是要能夠從任何網站X提交資料(原始頁他們是點擊書籤時)來我的網站服務器,同時在現場X.住如何獲得使用Bookmarklet的Ajax並繞過Javascript同源策略?
理想,我將能夠發回一個響應並將它彈出某處,但這不是必需的。
我一直在遇到相同的源策略問題 - 即從站點X開始,XMLHttpRequests只能由站點X的域啓動。
有沒有人知道一種解決方法(或他們可以指向我的教程)?一些帶書籤的Ajax?
非常感謝!
您可以使用JSONP執行跨域ajax請求(使用GET發送並接收數據爲JSON)。
您加載的小書籤可以將數據從主機頁面發佈到您的服務器。這很奇怪,但是隻有JavaScript受同源策略限制。
將GET
或POST
調用到另一個服務器工作正常。
小書籤可以在主機頁中注入隱藏的IFRAME
,src
屬性如http://yourdomain.com/listen
。
然後建立一個FORM
,其屬性爲:target
指向IFRAME
。
最後將表格提交至POST
的數據。
可悲的消息是,SOP不會讓你直接閱讀POST的響應,因爲它發生在IFRAME中,並且具有比主機頁面更多的域。
但是,如果您需要請求的反饋,您的小書籤可以使用setInterval
輪詢每X毫秒並使用JSONP詢問請求的狀態。
調用類似:
http://yourdomain.com/get-post-status?id=2234234&callback=showResult