83 lines
2.6 KiB
HTML
83 lines
2.6 KiB
HTML
<!-- Any copyright is dedicated to the Public Domain.
|
|
http://creativecommons.org/publicdomain/zero/1.0/ -->
|
|
<!doctype html>
|
|
|
|
<html>
|
|
<head>
|
|
<meta charset="utf-8"/>
|
|
<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" />
|
|
<meta http-equiv="Pragma" content="no-cache" />
|
|
<meta http-equiv="Expires" content="0" />
|
|
<title>Network Monitor test page</title>
|
|
<style>
|
|
input {
|
|
display: block;
|
|
margin: 12px;
|
|
}
|
|
</style>
|
|
</head>
|
|
|
|
<body>
|
|
<p>POST data test</p>
|
|
<form enctype="multipart/form-data" method="post" name="form-name">
|
|
<input type="text" name="text" placeholder="text" value="Some text..."/>
|
|
<input type="email" name="email" placeholder="email"/>
|
|
<input type="range" name="range" value="42"/>
|
|
<input type="button" value="Post me!" onclick="window.form()">
|
|
</form>
|
|
|
|
<script type="text/javascript">
|
|
/* exported performRequests */
|
|
"use strict";
|
|
|
|
function post(address, message) {
|
|
return new Promise(resolve => {
|
|
const xhr = new XMLHttpRequest();
|
|
xhr.open("POST", address, true);
|
|
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
|
|
|
|
let data = "";
|
|
for (const i in message) {
|
|
data += "&" + i + "=" + encodeURIComponent(message[i]);
|
|
}
|
|
|
|
xhr.onreadystatechange = function() {
|
|
if (this.readyState == this.DONE) {
|
|
resolve();
|
|
}
|
|
};
|
|
xhr.send(data);
|
|
});
|
|
}
|
|
|
|
function form(address, formName) {
|
|
return new Promise(resolve => {
|
|
const formData = new FormData(document.forms.namedItem(formName));
|
|
formData.append("Custom field", "Extra data");
|
|
|
|
const xhr = new XMLHttpRequest();
|
|
xhr.open("POST", address, true);
|
|
xhr.setRequestHeader("custom-header-xxx", "custom-value-xxx");
|
|
xhr.setRequestHeader("Priority", "u=3")
|
|
|
|
xhr.onreadystatechange = function() {
|
|
if (this.readyState == this.DONE) {
|
|
resolve();
|
|
}
|
|
};
|
|
xhr.send(formData);
|
|
});
|
|
}
|
|
|
|
async function performRequests() {
|
|
const url = "sjs_simple-test-server.sjs";
|
|
const url1 = url + "?foo=bar&baz=42&valueWithEqualSign=hijk=123=mnop&type=urlencoded";
|
|
const url2 = url + "?foo=bar&baz=42&type=multipart";
|
|
|
|
await post(url1, { foo: "bar", baz: 123, valueWithEqualSign: "xyz=abc=123", valueWithAmpersand: "abcd&1234" });
|
|
await form(url2, "form-name");
|
|
}
|
|
</script>
|
|
</body>
|
|
|
|
</html>
|