【发布时间】:2021-12-19 21:49:46
【问题描述】:
首先我想提一下,我使用的是原生 Javascript 和 PHP,而不是 jquery。我在下面发布的代码只是一个片段。我没有在 javascript 中包含 PHP 文件或其他代码。
现在,我遇到的问题是,当我单击保存按钮并激活事件时,除了表单数据发布之外没有其他代码运行。我在事件开始和结束时有一个控制台日志来测试其他代码是否运行,但它永远不会运行。表单数据(在本例中为图片)被发布到 PHP REST API 文件并按原样存储在一个文件夹中,但我没有收到来自它发布到的 PHP 文件的 JSON 响应,这是我最大的问题是在 javascript 代码的情况下,除了 post 请求之外没有其他代码运行。 console.logs(测试 1 和测试 2)都不会出现。
当我使用任何其他类型的数据(例如 JSON)测试发布请求时,一切正常。事件中的所有代码都会运行,我可以从发出请求的同一个 PHP 文件接收 JSON 格式的响应。发布表单数据会导致此错误。我希望我已经足够清楚地解释了这一点。感谢您的帮助。
save_bg_btn.addEventListener('click', save_background_picture);
async function save_background_picture(){
console.log("test 1");
const formData = new FormData();
const save_files_background_pic = file_bg_pic.files[0];
const url = 'http://localhost/test/background-cover.php';
formData.append("file_bg_pic", save_files_background_pic);
await post_formdata_request(url, formData)
.then(data =>{
console.log(data);
})
.catch(err => console.log(err));
console.log(test 2);
}
function post_formdata_request(url, formData){
return new Promise((resolve, reject) => {
fetch(url, {
method: 'POST',
body: formData
})
.then(res => res.json())
.then(data => resolve(data))
.catch(err => reject(err));
});
}
【问题讨论】:
标签: javascript php fetch