hz-zhhq-app/node_modules/vconsole/dev/network.html

326 lines
10 KiB
HTML
Raw Normal View History

2025-01-22 10:53:47 +08:00
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Dev: Network</title>
<link href="../example/lib/weui.min.css" rel="stylesheet"/>
<link href="../example/lib/demo.css" rel="stylesheet"/>
<script src="../dist/vconsole.min.js"></script>
<script src="https://unpkg.com/axios/dist/axios.min.js"></script>
</head>
<body ontouchstart>
<div class="page">
<a onclick="getAjax()" href="javascript:;" class="weui_btn weui_btn_default">getAjax</a>
<a onclick="postAjax()" href="javascript:;" class="weui_btn weui_btn_default">postAjax</a>
<a onclick="getFetch()" href="javascript:;" class="weui_btn weui_btn_default">getFetch</a>
<a onclick="getFetchSimple()" href="javascript:;" class="weui_btn weui_btn_default">getFetch(simple)</a>
<a onclick="postFetch()" href="javascript:;" class="weui_btn weui_btn_default">postFetch</a>
<a onclick="postFetchByRequest()" href="javascript:;" class="weui_btn weui_btn_default">postFetchByRequest</a>
<a onclick="getFetchText()" href="javascript:;" class="weui_btn weui_btn_default">getFetchText</a>
<a onclick="postImage()" href="javascript:;" class="weui_btn weui_btn_default">postImage</a>
<a onclick="sendBeacon()" href="javascript:;" class="weui_btn weui_btn_default">sendBeacon</a>
<a onclick="axiosRequest('GET')" href="javascript:;" class="weui_btn weui_btn_default">getAxios</a>
<a onclick="optionsXHR()" href="javascript:;" class="weui_btn weui_btn_default">optionsXHR</a>
<a onclick="optionsFetch()" href="javascript:;" class="weui_btn weui_btn_default">optionsFetch</a>
<a onclick="loadImgError()" href="javascript:;" class="weui_btn weui_btn_default">loadImgError</a>
<a onclick="loadScriptError()" href="javascript:;" class="weui_btn weui_btn_default">loadScriptError</a>
<a onclick="loadVideoError()" href="javascript:;" class="weui_btn weui_btn_default">loadVideoError</a>
<a onclick="loadLinkError()" href="javascript:;" class="weui_btn weui_btn_default">loadLinkError</a>
<a onclick="loadAudioError()" href="javascript:;" class="weui_btn weui_btn_default">loadAudioError</a>
</div>
</body>
</html>
<script>
window.vConsole = new window.VConsole({
maxLogNumber: 1000,
// disableLogScrolling: true,
onReady: function() {
console.log('vConsole is ready.');
}
});
// setInterval(() => {
// postAjax();
// }, 300);
function postAjax() {
console.info('postAjax() Start, response should be logged after End');
const xhr = new XMLHttpRequest();
xhr.onload = () => {
console.log('postAjax Response:', JSON.parse(xhr.response));
};
xhr.onerror = () => {
console.log('postAjax Error');
};
xhr.onreadystatechange = () => {
console.log('onreadystatechange', `readyState=${xhr.readyState}`, `status=${xhr.status}`);
};
xhr.open('POST', './data/large.json?method=fetchPost&c=中文');
xhr.send({
foo: 'bar',
id: `${Math.random()}${Math.random()}${Math.random()}${Math.random()}${Math.random()}${Math.random()}`,
type: 'xhr',
'<xss0>': '<xss1> XSS Attack!'
});
// xhr.send(JSON.stringify({foo: 'bar', id: Math.random(), '<xss0>': '<xss1> XSS Attack!'}));
console.info('postAjax() End');
}
function getAjax() {
console.info('getAjax() Start, response should be logged after End');
const url = window.location.origin + '/dev/data/success.json?method=xhrGet&id=' + Math.random() + '&<xss0>';
const xhr = new XMLHttpRequest();
xhr.open('GET', url);
xhr.setRequestHeader('custom-header', 'foobar');
xhr.send();
xhr.onload = () => {
console.log('getAjax Response:', JSON.parse(xhr.response));
};
xhr.onerror = () => {
console.log('getAjax Error');
};
console.info('getAjax() End');
}
function getFetch() {
console.info('getFetch() Start, response should be logged after End');
window.fetch('./data/success.json?method=fetchGet&id=' + Math.random(), {
method: 'GET',
headers: {
'custom-header': 'foobar',
'content-type': 'application/json'
},
}).then((data) => {
return data.json();
}).then((data) => {
console.log('getFetch Response:', data);
});
console.info('getFetch() End');
}
function getFetchSimple() {
console.info('getFetchSimple() Start, response should be logged after End');
window.fetch('./data/success.json?type=fetchGet&id=' + Math.random()).then((data) => {
return data.json();
}).then((data) => {
console.log('getFetchSimple Response:', data);
});
console.info('getFetchSimple() End');
}
function postFetch() {
console.info('postFetch() Start, response should be logged after End');
window.fetch('./data/success.json?method=fetchPost', {
method: 'POST',
body: { foo: 'bar', id: Math.random(), type: 'fetch' },
// body: new Blob([new ArrayBuffer(233)], { type: 'image/png' }),
headers: {
'custom-header': 'foobar',
// 'content-type': 'application/json'
// 'content-type': 'application/x-www-form-urlencoded'
'content-type': 'multipart/form-data',
'xss': '<xss1> XSS Attack!'
},
}).then((data) => {
return data.json();
}).then((data) => {
console.log('postFetch Response:', data);
}).catch((error) => {
console.error('postFetch Error:', error);
});
console.info('postFetch() End');
}
function postFetchByRequest() {
console.info('postFetchByRequest() Start, response should be logged after End');
const headers = new Headers();
headers.append('custom-header', 'foobar');
// headers.append('content-type', 'application/json');
headers.append('content-type', 'application/x-www-form-urlencoded');
const req = new Request('./data/success.json?method=fetchPost&id=' + Math.random(), {
method: 'POST',
body: { foo: 'bar', id: Math.random() },
// body: new Blob([new ArrayBuffer(233)], { type: 'image/png' }),
headers: headers,
});
window.fetch(req).then((data) => {
return data.json();
}).then((data) => {
console.log('postFetchByRequest Response:', data);
}).catch((error) => {
console.error('postFetchByRequest Error:', error);
});
console.info('postFetchByRequest() End');
}
function getFetchText() {
console.info('getFetchText() Start, response should be logged after End');
window.fetch('./data/success.txt?type=fetchGet&id=' + Math.random(), {
method: 'GET',
headers: {
'custom-header': 'foobar',
'content-type': 'application/json'
},
}).then((data) => {
return data.text();
}).then((data) => {
console.log('getFetchText Response:', data);
});
console.info('getFetchText() End');
}
function postImage() {
console.info('postImage() Start, response should be logged after End');
const xhr = new XMLHttpRequest();
xhr.open('POST', '../example/snapshot/panel_log.jpg?method=xhrPost&id=' + Math.random());
xhr.send();
window.fetch('../example/snapshot/qrcode.png?method=fetchPost&id=' + Math.random(), {
method: 'POST',
});
console.info('postImage() End');
}
function sendBeacon() {
console.info('sendBeacon() Start, response should be logged after End');
window.navigator.sendBeacon('./data/success.json?method=beacon', JSON.stringify({
foo: 'bar',
id: Math.random(),
type: 'sendBeacon'
}));
console.info('sendBeacon() End');
}
function axiosRequest(method) {
console.info('axiosRequest() Start');
axios({
method,
url: './data/success.json?method=axios&r=' + Math.random(),
headers: { 'content-type': 'application/x-www-form-urlencoded' },
data: {
foo: 'bar'
}
})
.then(function(response) {
console.log('axiosRequest response:', response);
})
.catch(function(error) {
console.log('axiosRequest error:', error);
});
console.info('axiosRequest() End');
}
function sendBeacon() {
console.info('sendBeacon() Start, response should be logged after End');
window.navigator.sendBeacon('./data/success.json?method=beacon', JSON.stringify({
foo: 'bar',
id: Math.random(),
type: 'sendBeacon'
}));
console.info('sendBeacon() End');
}
function axiosRequest(method) {
console.info('axiosRequest() Start');
axios({
method,
url: './data/success.json?method=axios&r=' + Math.random(),
headers: { 'content-type': 'application/x-www-form-urlencoded' },
data: {
foo: 'bar'
}
})
.then(function(response) {
console.log('axiosRequest response:', response);
})
.catch(function(error) {
console.log('axiosRequest error:', error);
});
console.info('axiosRequest() End');
}
function optionsXHR() {
console.info('optionsXHR() Start');
const url = window.location.origin + '/dev/data/a.json?method=optionsXHR&s=500&id=' + Math.random() + '&<xss0>';
const xhr = new XMLHttpRequest();
xhr.open('OPTIONS', url);
xhr.setRequestHeader('custom-header', 'foobar');
xhr.send();
xhr.onload = () => {
console.log('optionsXHR Response:', xhr.response);
};
xhr.onerror = () => {
console.log('optionsXHR Error');
};
console.info('optionsXHR() End');
}
function optionsFetch() {
console.info('optionsFetch() Start');
window.fetch('./data/a.json?method=optionsFetch&s=403&t=300', {
method: 'OPTIONS',
}).then((data) => {
console.log('optionsFetch Response:', data);
}).catch((error) => {
console.error('optionsFetch Error:', error);
});
console.info('optionsFetch() End');
}
function loadImgError() {
console.info('loadImgError() Start');
const img = new Image();
img.src = 'http://xxxx.jpg';
document.body.appendChild(img);
img.onerror = () => {
console.info('loadImgError() End');
}
}
function loadScriptError() {
console.info('loadScriptError() Start');
const scri = document.createElement("script");
scri.src = 'http://xxxx.js';
document.body.appendChild(scri);
scri.onerror = () => {
console.info('loadScriptError() End');
}
}
function loadVideoError() {
console.info('loadVideoError() Start');
const vid = document.createElement("video");
vid.src = 'http://xxxx.mp4';
document.body.appendChild(vid);
vid.onerror = () => {
console.info('loadVideoError() End');
}
}
function loadLinkError() {
console.info('loadLinkError() Start');
const link = document.createElement("link");
link.rel = 'stylesheet';
link.type = 'text/css';
link.href = './data/a.css?s=404';
document.body.appendChild(link);
link.onerror = () => {
console.info('loadLinkError() End');
}
}
function loadAudioError() {
console.info('loadAudioError() Start');
const audio = document.createElement("Audio");
audio.src = 'http://xxxx.mp3';
document.body.appendChild(audio);
audio.onerror = () => {
console.info('loadAudioError() End');
}
}
</script>