我正在尝试使用fetch而不是xmlhttprequest,但是fetch无法以类似的ajax系统的方式工作,或者至少,我无法以相同的方式使它工作。我有以下代码:
addAction("pressBTN", "click", function() {
const data = new FormData();
data.append('dset1', theElement("dataINP1").value);
data.append('dset2', theElement("dataINP2").value);
/* for (var pair of data.entries()) {
console.log(pair[0]+ ', '+ pair[1]);
} */
fetch('./files/php/scripts/dataEntery.php', {
method: 'POST',
body: data
})
.then(response =>
if (!response.ok) {
throw new Error('Unknown Error #4: nice way to mess it up');
} else {
console.log(response);
}
}).catch((err) => {
console.log(err);
});
}, true);
请注意,theElement和addAction仅使我不必输入内容
document.getElementById
和
document.addEventListener
一遍又一遍。
此过程返回,并且响应正常。凉!除非php文件中的任何内容都没有运行。
使用先前的系统xmlhttprequest,它调用了php文件,运行其内容并返回。在该PHP中,我可以根据数据库检查值,并且您知道服务器的工作。
我已经尝试将php文件移动到与javascript文件相同的位置。没有。我确保数据值格式正确,但注释代码中仍然存在。
我尝试了json,因为那里的每个教程都显示json。仍然没有用。甚至没有最简单的命令,如
<?php
print_r($_POST);
echo “balls!”;
?>
在php文件中有效。老实说,我不知道为什么。看起来代码应该对我有用。也许我在这里缺少什么。
除了将两个输入设置为文本和一个按钮的HTML外,项目中没有其他代码。这看起来像它应该工作。控制台记录响应时将返回以下内容:
body: ReadableStream
statusText: “OK”
json: (function)
redirected: false
text: (function)
status: 200
bodyUsed: false
url: “goodurlpath/files/php/scripts/dataentry.php”
type: “basic”
blob: (function)
arrayBuffer: (function)
formData: (function)
headers: Headers
value: (function)
keys: (function)
delete: (function)
forEach: (function)
entries: (function)
get: (function)
append: (function)
set: (function)
has: (function)
clone: (function)
ok: true
我想知道PHP是否应该与fetch一起运行!?
感谢您提供有关为什么不在此处运行php的任何帮助。