Javascript 国际标准化组织’;你不应该运行PHP文件的内容吗?
我试图使用fetch而不是xmlhttprequest,但是fetch没有像类似的ajax系统那样工作,或者至少,我不能让它以同样的方式工作。 我有以下代码:Javascript 国际标准化组织’;你不应该运行PHP文件的内容吗?,javascript,php,fetch,Javascript,Php,Fetch,我试图使用fetch而不是xmlhttprequest,但是fetch没有像类似的ajax系统那样工作,或者至少,我不能让它以同样的方式工作。 我有以下代码: addAction("pressBTN", "click", function() { const data = new FormData(); data.append('dset1', theElement("dataINP1").value); data.append('dset2', theElement("dataIN
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);
注意,element和addAction只是让我不必打字
document.getElementById
及
一遍又一遍
此过程返回ok响应。酷!除了php文件中的任何内容都无法运行之外
在前面的系统xmlhttprequest中,它调用php文件,运行其内容并返回。在PHP中,我可以根据数据库检查值,你知道的,我可以做服务器的事情
我尝试将php文件移动到与javascript文件相同的位置。没有什么。我确保数据值的格式正确,这仍然存在于注释代码中
我尝试了json,因为每个教程都显示json。它仍然不起作用。甚至连最简单的命令都不像
<?php
print_r($_POST);
echo “balls!”;
?>
我想知道PHP是否应该运行fetch
任何关于php为什么不在这里运行的帮助都将不胜感激。您上面记录的是对象。实际获取流并将其读取到完成还需要另一个步骤 如果您将
fetch
请求更新为以下内容,则它应该可以工作:
fetch('./files/php/scripts/dataEntery.php', {
method:'POST',
body: data
}).then(response => {
return response.text();
}).then(response => {
console.log(response);
});
上面记录的是对象。实际获取流并将其读取到完成还需要另一个步骤 如果您将
fetch
请求更新为以下内容,则它应该可以工作:
fetch('./files/php/scripts/dataEntery.php', {
method:'POST',
body: data
}).then(response => {
return response.text();
}).then(response => {
console.log(response);
});
这是我的房间吗?如果是这样的话,您应该这样标记它。尝试使用
$data=file\u get\u contents(“php://input"); 打印(数据)你能粘贴PHP代码吗?使用XMLHttpRequest的那一个?从服务器的角度来看,XHR和fetch();它们都发送普通的HTTP请求。您应该在服务器上和浏览器中使用诊断工具来验证HTTP请求是否发出了预期参数(etc),以及服务器响应包含的内容。@TheAmazingNeckbeard好的,这就是为什么我询问而不是自己标记它的原因。您使用的语法经常出现在react中。这是ReactJS吗?如果是这样的话,您应该这样标记它。尝试使用$data=file\u get\u contents(“php://input"); 打印(数据)你能粘贴PHP代码吗?使用XMLHttpRequest的那一个?从服务器的角度来看,XHR和fetch();它们都发送普通的HTTP请求。您应该在服务器上和浏览器中使用诊断工具来验证HTTP请求是否发出了预期参数(etc),以及服务器响应包含的内容。@TheAmazingNeckbeard好的,这就是为什么我询问而不是自己标记它的原因。您使用的语法经常出现在react中。这很有效。但还是不明白为什么。有没有可能你能给我一点更详细的解释,为什么它坏了,为什么它被修复了?我担心如果我不学习这一部分,那么问这个问题将是徒劳的。你说我没有等待抓取完成是什么意思?@TheAmazingNeckbeard你会看到有2个然后块。第一个块获取响应
对象,即您在上面记录的对象。然后,如果使用.text()
方法,它将读取此流直至完成。这一切都基于js fetch请求的异步性质。阅读本页--以及承诺
了解更多详细信息,那么fetch的工作方式与xmlhttprequest不同?我不能运行php然后返回?一切都要等到最后@我很确定,这是一款无法与XMLHTTPREQUEST一起使用的令人惊叹的Neckbeard。但无论如何这样做是没有意义的。。。通过Ajax请求,您可以将数据返回到JavaScript中,然后JavaScript可以做任何它想做的事情。也不需要在响应中包含单独的JS块,这只是重复,而且它不会被视为代码。Fetch和XHR都实现了Ajax。规范没有改变,只是代码接口。在这两种情况下,您都必须等待请求完成,然后才能执行任何有效的操作。但还是不明白为什么。有没有可能你能给我一点更详细的解释,为什么它坏了,为什么它被修复了?我担心如果我不学习这一部分,那么问这个问题将是徒劳的。你说我没有等待抓取完成是什么意思?@TheAmazingNeckbeard你会看到有2个然后块。第一个块获取响应
对象,即您在上面记录的对象。然后,如果使用.text()
方法,它将读取此流直至完成。这一切都基于js fetch请求的异步性质。阅读本页--以及承诺
了解更多详细信息,那么fetch的工作方式与xmlhttprequest不同?我不能运行php然后返回?一切都要等到最后@我很确定,这是一款无法与XMLHTTPREQUEST一起使用的令人惊叹的Neckbeard。但无论如何这样做是没有意义的。。。通过Ajax请求,您可以将数据返回到JavaScript中,然后JavaScript可以做任何它想做的事情。也不需要在响应中包含单独的JS块,这只是重复,而且它不会被视为代码。Fetch和XHR都实现了Ajax。规范没有改变,只是代码接口。在这两种情况下,您都必须等待请求完成后才能执行任何操作
fetch('./files/php/scripts/dataEntery.php', {
method:'POST',
body: data
}).then(response => {
return response.text();
}).then(response => {
console.log(response);
});