發現有些web程序中會在頁面中放置一個隱藏的img,然后把它的src設置為調用后臺業務邏輯的url。
3 回答

慕虎7371278
TA貢獻1802條經驗 獲得超4個贊
主要應用于只需要向服務器發送數據(日志數據)的場合,且無需服務器有消息體回應。比如收集訪問者的統計信息。
一般做法是服務器用一個1x1的gif圖片來作為響應,當然這有點浪費服務器資源。因此用header來響應比較合適,目前比較合適的做法是服務器發送"204 No Content",即“服務器成功處理了請求,但不需要返回任何實體內容”。
另外該腳本的位置一般放在頁面最后以免阻塞頁面渲染,并且一般情況下也不需要append到DOM中。通過它的onerror和onload事件來檢測發送狀態。
<script type="text/javascript"> var thisPage = location.href; var referringPage = (document.referrer) ? document.referrer : "none"; var beacon = new Image(); beacon.src = "http://www.example.com/logger/beacon.gif?page=" + encodeURI(thisPage) + "&ref=" + encodeURI(referringPage);</script>
這樣做和ajax請求的區別在于:
1.只能是get請求,因此可發送的數據量有限。
2.只關心數據是否發送到服務器,服務器不需要做出消息體響應。并且一般客戶端也不需要做出響應。
3.實現了跨域。
添加回答
舉報
0/150
提交
取消