用JS動態構造GET請求之謎(ajax跨域的另類解法)

有的時候,會有這樣一種情況,當我們需要收集一些用戶的頁面數據或者瀏覽器、屏幕分辨率等時,而且這些數據是儘可能的真實的,如果讓用戶填寫一個表單來提交,這有很多人是不願意去做的,除非你正在舉行一個抽獎,他們大概纔會樂此不疲,數據亦缺乏準確性,解決方法是使用JS,對!使用Javascript腳本就能輕鬆的取得我們需要的數據,但怎麼提交到服務器就成了一個問題,使用AJAX確實是一個優越而又可行的辦法,可是,有的時候我們不用表現的如此優雅,直接使用JS動態構造一個GET請求,不由分說的提交到服務器,問題也就解決了,這過程中同樣不需要用戶的介入,OK,看看我的一點拙劣的做法吧。 衆所周知的一件事情是:使用script標籤,能在頁面中新開一個通信連接(當然你可以說iframe,object標籤也可以),如果我們將script 標籤的src指向一個php文件,那麼它就可以向服務器提交數據了。動態創建script標籤的方法有兩種,其實實質上是一樣的。 這裏我先創建了一個js文件,供後面將動態創建的元素的src直接指向該文件s.js內容很簡單: 1. if(v !=''){ 2. alert(v); 3. } 4. else{ 5. alert('生活於三山兩水間,無比愜意釋然。'); 6. } 1、使用createElement動態創建script元素 1. 2、使用document.write直接寫入 1. 這兩種都能輕鬆的動態創建一個script標籤,來構造get請求,可以根據實際情況選擇使用2種方法。 給出完整的演示:http://www.zendstudio.net/libs/use-js-create-script-tag-demo/ajax中的跨域問題也就可以這麼解決了,獲取遠程服務器數據,不再是難題,這種方法不好使用XML而已。 (於ifeng合作的時候他們的數據統計就是要求指向一個js的文件,估計就是這個樣子的利用)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章