我正在尝试在此处合并 Stack 用户 DannYo 的评论中的一些代码,但是我的他的代码版本似乎没有运行。错误和“beforesend”函数每次都返回。
HTML
<form action="" method="post" enctype="multipart/form-data">
<input type="file" id="file">
<input type="email" id="sender" name="sender" required>
<input type="email" id="receiver" name="receiver" required>
<input type="text" id="message" name="message">
<button id="send" class="button">Send it</button>
</form>
JavaScript
$("form").on("submit", function() {
var formData = new FormData($('form')[0]);
$.ajax({
url: 'upload.php', //server script to process data
type: 'POST',
xhr: function() { // custom xhr
myXhr = $.ajaxSettings.xhr();
if (myXhr.upload) { // check if upload property exists
myXhr.upload.addEventListener('progress',progressHandlingFunction, false); // for handling the progress of the upload
}
return myXhr;
},
//Ajax events
beforeSend: function() { console.log("before send function works"); },
success: function(e) {
console.log(e);
},
error: function() { console.log("error function works"); },
// Form data
data: formData,
//Options to tell JQuery not to process data or worry about content-type
cache: false,
contentType: false,
processData: false
});
return false;
});
PHP
出于测试目的,该upload.php
文件只有<?php echo "success"; ?>
使用 Chrome 的网络开发人员工具,我没有看到我的文件被传输到任何地方。有人在我的代码中看到一个明显的漏洞吗?谢谢