[英]Can not send form to PHP script
我使用了一些好的 ol' ajax 提交 function 作為我制作的表格。 我用我使用的相同 javascript 做了一個小例子。 如果表單被正確發送,那么用戶將不會收到任何警告。 如果未發送表單,則用戶將收到“reee”警報。 就我而言,用戶收到“reeeeee”的警告,因為表單似乎沒有發送到 php 腳本,我不知道為什么。
它有點像這樣:
html
<form id = "theform" >
<input name = "noodz" required>
</form>
js
const form = document.getElementById("theform");
form.addEventListener("submit", submitfunc);
function submitfunc(e) {
e.preventDefault();
const thing = new XMLHttpRequest();
thing.open("POST", "upload.inc.php");
thing.upload.addEventListener("progress", e => {
console.log(e);
});
thing.onreadystatechange = function() {
if (thing.readyState == 4 && thing.status == 200) {
var message = thing.responseText;
alert(message);
}
}
thing.setRequestHeader("Content-Type", "multipart/form-data");
thing.send(new FormData(form)); // <- where form is sent
}
php
<?php
if (isset($_POST['noodz'])){
//form was sent
} else {
//form wasn't sent
echo "reeeeeeeeeeeee"
}
?>
您需要刪除該行
thing.setRequestHeader("Content-Type", "multipart/form-data")
並讓 XHR 正確設置內容類型值本身並生成正確的 MIME 邊界(如果需要 - 對於您的簡單形式,它不是)。
這是一個演示https://jsfiddle.net/oxaqfbcd/ - 如果您查看瀏覽器的網絡工具,您將看到請求正確形成並檢測到表單數據。
如果您重新添加該行代碼並再次運行它,您可以將請求正文部分的外觀與該行不存在時的外觀進行對比,看看它有什么影響。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.