gpt4 book ai didi

javascript - 无法使用post请求nodejs重定向

转载 作者:行者123 更新时间:2023-12-03 12:18:58 26 4
gpt4 key购买 nike

我的前端有一个按钮,允许用户更新他们的个人资料照片(使用 Cloudinary api),我基本上调用我的 nodejs 发布请求并将用户数据传递给它,以便它可以查询数据库并更新个人资料照片网址。效果很好,但它在调用该函数后不会重定向/呈现页面。

这是我的前端(使用 Cloudinary 和 js)

<input type="hidden" name="" id="employee_num" value="<%= data[i].EMPLOYEE_NUM %>">

<script src="https://widget.cloudinary.com/v2.0/global/all.js" type="text/javascript"></script>

<script type="text/javascript">
var myWidget = cloudinary.createUploadWidget({
cloudName: 'xxx',
uploadPreset: 'xxx'}, (error, result) => {
if (!error && result && result.event === "success") {
console.log('Done! Here is the image info: ', result.info);
console.log(result.info.secure_url)
var result_url = result.info.secure_url;
console.log("result url is " + result_url)
document.getElementById("url").value = result_url;
var employee_num = document.getElementById('employee_num').value;

fetch('/changeProfileImage', {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
result_url,
employee_num
})
})
}
}
)

document.getElementById("upload_widget").addEventListener("click", function(){
myWidget.open();

}, false);
</script>

下面是我用于发布请求的 nodejs 函数 /changeProfileImage

app.post('/changeProfileImage', (req, res) => {
if (req.session.loggedin) {
var employee_num = req.body.employee_num;
var url = req.body.result_url;
console.log("e " + employee_num)
console.log("u " + url)

var changeProfileImage = "update EMPLOYEES set (PROFILE_IMAGE)= '" + url + "' where EMPLOYEE_NUM = '" + employee_num + "'";
ibmdb.open(ibmdbconnMaster, function (err, conn) {
if (err) return console.log(err);
conn.query(changeProfileImage, function (err, rows) {
if (err) {
console.log(err);
}

res.redirect('/account');

conn.close(function () {
});
})
})
} else {
res.render('login.ejs')
}
})

请原谅我的乱七八糟的代码,但上面是所有需要的东西。它基本上在我的控制台中说它更新了所有内容,并成功通过,这是真的,但它永远不会刷新。有什么想法吗?

最佳答案

问题是您正在进行 AJAX 调用,因此 js 正在向服务器发出 HTTP 请求,但它不是整个页面,因此您需要在获取的回调中手动执行此操作:

fetch('/changeProfileImage', {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
result_url,
employee_num
})
}).then(response => {
if (response.redirected) {
window.location.href = response.url;
})

关于javascript - 无法使用post请求nodejs重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66558194/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com