我正在为大学项目创建注册系统。这是使用fetch将数据从表单发布到PHP文件。
我想传递一个$message
变量,该变量在PHP页面的底部回显,以了解注册是否成功,或者是否发生了错误消息。如果我看到$message
等于我的成功字符串,我想我可以使用window.location.href
来执行if语句,如下所示?当前,无论PHP响应如何,它都会重定向页面以进行任何成功的获取。
我尝试在成功行的PHP文件中使用header("Location: /index.html");
,但这对我也不起作用。我已经花了几个小时寻找解决方案,但是我真的无法理解如何传递此变量。
var myJSON = JSON.stringify(userDetails);
fetch("url/register.php", {
method: "POST",
mode: "no-cors",
cache: "no-cache", /
credentials: "same-origin",
headers: {
"Content-Type": "application/json"
},
redirect: "follow",
referrer: "no-referrer",
body: myJSON
}).then((response) => {
if (response.ok) {
return response.blob();
} else {
throw new Error("Things went poorly.");
}
}).then((response) => {
//Fetch was successful!
window.location.href = "url/index.html";
}).catch((error) => {
console.log(error);
});
答案 0 :(得分:0)
完成此操作的一种方法是使用URL的查询参数传递成功消息。例如:
window.location.href = "url/index.html?login=success";
然后,在.html页面上,您将拥有查找login
查询参数的代码,并且如果该参数等于success
,则会显示一些内容。
答案 1 :(得分:0)
您可以在您的php文件中尝试以下操作:
$response = [ message => "the message", success => true ];
echo json_encode($response);
您将收到一个JSON响应,您将使用它来验证请求是否成功。
在您的javascript代码中,您必须将此JSON响应解析为文字对象,例如:
fetch(url, {params})
.then(response => response.json())
.then((response) => {
if (response.success) {
// fetch was succesfull!
} else {
// response.message could be used to show what was wrong
throw new Error(response.message);
}
})