我不明白为什么在成功处理POST
请求后会创建一个请求GET
。
网页格式
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<form>
<input type="text" name="header">
<textarea name="description"></textarea>
<button onclick="_send_entry()">submit</button>
</form>
<script src="../../test.js"></script>
</body>
</html>
js
function _send_entry() {
let xhr = new XMLHttpRequest();
xhr.open('POST', '/test');
xhr.send();
xhr.onload = function() {
if(xhr.status != 200)
alert(`error - ${xhr.status}`);
else
alert(`получено байт - ${xhr.response.length}`);
};
}
PHP
case 'test':
echo "hello";
break;
输入
回答
结论
提交表单后,页面将重新加载。我该怎么做才能不形成 GET 请求并且不重新加载页面?
比如
html
在你那里,除了你的请求,请求还发送表格。由于标签form
没有属性method
,所以它是GET
。提交后,由于该标签
form
没有属性action
(表示当前页面),因此重新加载页面。要防止表单的这种“默认操作”,您需要向处理程序添加“默认操作”取消。
可以在此处找到更多详细信息 https://doka.guide/js/event-prevent-default/