fetch不应该运行PHP文件的内容吗?



我正在尝试使用 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);

请注意,元素和添加操作只是让我不必输入

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 不在这里运行的帮助将不胜感激。

您在上面记录的是Response对象。实际获取流并将其读取完成还需要另一个步骤。

如果将fetch请求更新为以下内容,它应该可以工作:

fetch('./files/php/scripts/dataEntery.php', {
method:'POST',
body: data
}).then(response => {
return response.text();
}).then(response => {
console.log(response);
});

最新更新