我目前正在使用 javascript 进行编码,但遇到了瓶颈。 Javascript FETCH api 到 POST 是这样的:
('form') 是我在 html 中的表单 #ID。
fetch(URL_TO_POST, {
method: 'post',
body: new FormData(document.querySelector('form'))
}).then(response => {
console.log(response);
});
php文件:
if( !isset($_POST['email'])){
throw new exception (blabla);
}
URL_TO_POST 就像一个“validation.php”,在代码中我检索了一些 POST 信息并在那里做了一些事情。问题是我不能对 javascript 响应抛出任何异常!对此有什么想法吗?注意:我没有使用 ajax 来发布,因为我试图只使用 js 代码来保持简单和干净。 谢谢!
最佳答案
在您的 JavaScript 中,您可以使用拒绝处理程序来处理发送到服务器的无效数据:
fetch(
URL_TO_POST,
{
method: 'post',
body: new FormData(document.querySelector('form'))
}
)
.then(
function(response) {
//https://httpstatuses.com/422
if (response.status === 422) {
return Promise.reject(response.json());
}
//check for other things that could have gone wrong
return response.json();
}
).then(
function(json) {
console.log("received success json",json)
}
,function(json) {
console.log("received reject json",json)
}
)
不清楚您对 PHP 使用的是什么,但您可以使用一些 json 提供 422 的状态代码:
http_response_code(422);
echo json_encode(array("error" => "missing field", "field" => "email"));
关于javascript - 使用 PHP 将异常返回到 javascript FETCH API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47418373/