Javascript 仅在PHP中使用Fetch成功后重定向页面
我正在为一个大学项目创建一个注册系统。这是使用fetch将表单中的数据发布到PHP文件中 我想通过PHP页面底部的Javascript 仅在PHP中使用Fetch成功后重定向页面,javascript,php,variables,fetch,Javascript,Php,Variables,Fetch,我正在为一个大学项目创建一个注册系统。这是使用fetch将表单中的数据发布到PHP文件中 我想通过PHP页面底部的$message变量进行传输,以了解注册是否成功,或者是否出现了错误消息。如果我能看到$message等于我的成功字符串,我想我可以使用window.location.href执行If语句,如下所示?目前,无论PHP的响应是什么,它都会为任何成功的获取重定向页面 我试过使用标题(“Location:/index.html”)在我的PHP文件中的成功行,但这对我也不起作用。我花了几个小
$message
变量进行传输,以了解注册是否成功,或者是否出现了错误消息。如果我能看到$message
等于我的成功字符串,我想我可以使用window.location.href
执行If语句,如下所示?目前,无论PHP的响应是什么,它都会为任何成功的获取重定向页面
我试过使用标题(“Location:/index.html”)代码>在我的PHP文件中的成功行,但这对我也不起作用。我花了几个小时寻找解决方案,但我真的不知道如何传递这个变量
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);
});
实现这一点的一种方法是使用URL的查询参数传递成功消息。例如:
window.location.href = "url/index.html?login=success";
然后在.html页面上,您会看到一些代码,这些代码会查找登录
查询参数,如果它等于成功
,您可以在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);
}
})
谢谢你的回复!实际上,我正在使用Cordova构建一个应用程序,所以我认为我必须将.html页面保持为纯html,这样它才能阅读。那么这仍然有效吗?您仍然可以使用我提到的URL方法,但是可以使用javascript读取查询参数并显示正确的成功消息。