回答
@Vipul Panth有幫助的信息,但我想提供一些更完整的細節。
首先,請注意navigator.sendBeacon
在所有瀏覽器中都不受支持。有關此功能的更多詳細信息以及當前支持的瀏覽器MDN documentation。
你確實創建了一個blob來提供標題。下面是一個例子:
window.onunload = function() {
let body = {
id,
email
};
let headers = {
type: 'application/json'
};
let blob = new Blob([JSON.stringify(body)], headers);
navigator.sendBeacon('url', blob);
});
navigator.sendBeacon
將發送設置爲無論是在headers.type
在Content-Type請求標頭的POST請求。這似乎是你可以在一個信標中設定雖然只有頭,每W3C:
的sendBeacon方法不提供自定義請求的方法,提供自定義請求頭,或更改請求等加工性質的能力和迴應。需要此類請求的非默認設置的應用程序應該使用帶有Keepalive標誌的[FETCH] API設置爲true。
我能夠觀察一些如何通過這個Chromium bug report工作。
在搜索這個問題的答案後,我發現用導航器傳遞標題需要傳遞一個blob對象。
例如
var hearders = {type : 'application/json'};
var blob = new blob(request , headers);
navigator.sendBeacon('url/to/send',blob);
感謝。
您的意思是利用'新blob'因此,這將是'新的Blob'? –
什麼是'請求'?你能否引用你的任何消息來源? –
我所說的請求是一個需要在瀏覽器關閉時發送的票據數據列表,以及服務器可以將其作爲授權請求識別出來。 –
作爲寫入Processing Model of sendBeacon:
提取對象的字節流(transmittedData)和內容類型(contentType中)。
如何進行提取described here
我已經收集是傳輸數據的內容類型被提取,它被設置爲HTTP請求的內容類型。
1)如果發送Blob對象,則Content-Type變爲Blob的類型。
2)如果一個FORMDATA對象發送,內容類型變爲多部分/格式數據
3)如果一個URLSearchParams對象發送,內容類型變爲應用程序/ x-WWW窗體-urlencoded
4)如果一個正常的字符串被髮送,內容類型變爲純文本/
Javascript代碼來實現不同的對象can be found here
- 1. 將請求頭信息傳遞給app.get
- 2. 傳遞信息
- 3. C#傳遞信息
- 4. 傳遞div信息
- 5. hook_block_view不傳遞信息
- 6. 傳遞信息webapp2的
- 7. 從JFrames傳遞信息
- 8. 將信息傳遞給jqModal
- 9. 傳遞smpp附加信息
- 10. 在GUI中傳遞信息
- 11. 傳遞什麼信息dispatch_queue_attr_t
- 12. 使用AJAX傳遞信息
- 13. 傳遞信息切換
- 14. 主頁傳遞信息?
- 15. 傳遞上下文信息
- 16. Android開發:傳遞信息
- 17. 將信息傳遞給iframe
- 18. 使用javascript傳遞信息
- 19. 傳遞類信息C#
- 20. 通過Segue傳遞信息
- 21. Openpyxl to treeview傳遞信息
- 22. 通過AJAX傳遞信用卡信息
- 23. 在HTTP標頭中傳遞Windows登錄信息
- 24. 在Xcode中使用協議傳遞信息從彈出窗口傳遞信息
- 25. 如何將頭信息傳遞給soap頭SOAP_ENV__Header,在C++中使用gsoap
- 26. PHP:消息傳遞沿頭部位置
- 27. Axis2 SOAP信封頭信息
- 28. Angular4在組件之間傳遞信息
- 29. 將信息傳遞給另一個GSP
- 30. 計數行和傳遞信息與mysqli
是的,你是完全正確的,因爲這是根據[文檔](https://developer.mozilla.org/en-US/docs/Web/API/Navigator/sendBeacon)的實驗性方法,並且只能在最新的瀏覽器中使用,例如鉻v39。 –
糾正我,如果我錯了,但保留存取甚至沒有在Chrome中實現。 https://groups.google.com/a/chromium.org/forum/#!topic/loading-dev/_F6oicQ3_F4 –