すべてのajaxリクエストにカスタムヘッダを追加するためにwindow.fetchをオーバーライドしたいと思います。これはxhrのやり方と似ています。window.fetchプロトタイプをオーバーライドするとカスタムヘッダが追加されます
XMLHttpRequest.prototype.realSend = XMLHttpRequest.prototype.send;
var newSend = function(vData) {
this.setRequestHeader('ClientId', 'ANDROID');
this.setRequestHeader('CustId', '%s');
this.realSend(vData);
};
XMLHttpRequest.prototype.send = newSend;
アンドロイドのwebviewでこれを行うことができます。 shouldInterceptUrl(例:https://artemzin.com/blog/use-okhttp-to-load-resources-for-webview/)を使用してカスタムヘッダーを追加しようとしましたが、推奨されていないものです。私はそれを設定するにはかなりの仕事だ、それをテストしていない:どこか私たちはサービスワーカーに
<script>
navigator.serviceWorker.register('sw.js')
</script>
sw.js
// sw.js
function isWhatYouWant(request){
// check request if we should add headers
return true
}
self.addEventListener('fetch', event => {
if(isWhatYouWant(event.request)){
event.request.headers.set('ClientId', 'ANDROID');
event.request.headers.set('CustId', '%s');
event.respondWith(fetch(event.request));
}
}
PSを登録する必要がありますページの
これを上書きせずにインターセプトしてサービスワーカーでヘッダーを編集し、[fetchEvent](https://developer.mozilla.org/en-US/docs/Web/API/FetchEvent) – Endless
私に例を教えてください。私は主にAndroid用のネイティブjavaで動作します。私はjavascriptであまりよくありません:(。 –
あなたが行く、そこには、[フェッチクッキー](https://github.com/)のようにも簡単な方法がありますサーバー側でそれを行いました – Endless