Navigator.sendBeacon() um header-Informationen übergeben
Ich bin mit navigator für die Kommunikation mit dem server , aber das problem ist, dass wir weitergeben müssen einige header-Informationen gibt es filter, die erkennen, wird die Anfrage von den gültigen Quelle.
Kann jemand helfen auf diese?
Dank.
Du musst angemeldet sein, um einen Kommentar abzugeben.
@Vipul Panth finden Sie hilfreiche Informationen, aber ich wollte noch mehr nachlesen.
Beachten Sie zunächst, dass
navigator.sendBeacon
wird nicht unterstützt in allen Browsern. Sehen Sie mehr Details über diese Funktion sowie die derzeit unterstützten Browsern im MDN-Dokumentation.Tun Sie in der Tat erstellen einer blob zu bieten-Header. Hier ist ein Beispiel:
navigator.sendBeacon
senden einer POST-Anforderung mit den Content-Type-header der Anforderung festgelegt ist, was inheaders.type
. Dies scheint die einzige header kannst du im beacon obwohl, pro W3C:Konnte ich beobachten, wie diese sich mit dieser Chromium bug-report.
Wie geschrieben Processing-Modell von sendBeacon :
Wie die Extraktion durchgeführt wird, ist hier beschrieben
, Was ich gesammelt habe ist, dass der content-type der übertragenen Daten extrahiert, und es wird festgelegt, wie der Content-Type der HTTP-Anfrage.
1) Wenn ein Blob-Objekt gesendet, wird der Content-Type wird der Blob-Typ.
2) wird ein FormData-Objekt gesendet, wird der Content-Type wird multipart/form-data
3) Wenn ein URLSearchParams Objekt gesendet, wird der Content-Type wird application/x-www-form-urlencoded
4), Wenn eine normale Zeichenfolge gesendet wird, wird der Content-Type wird text/plain
Javascript-code zum implementieren der verschiedenen Objekte finden Sie hier
text/plain;charset=UTF-8
Wenn Sie Chrome verwenden und Sie versuchen, den content-type-header, dann haben Sie wahrscheinlich einige Probleme aufgrund von Sicherheits-Beschränkungen :
Siehe diesen thread
Nach der Suche nach einer Antwort für diese Frage fand ich heraus, dass für die Weitergabe des headers mit navigator-wir übergeben zu müssen, ein blob-Objekt.
Zum Beispiel
new blob
so, dass esnew Blob
?request
? Können Sie zitieren, alle Ihre Quellen?