文章内容

2023/5/26 13:19:46,作 者: 黄兵

window.location.href 页面无法跳转问题

使用 JavaScript window.location.href 的方式实现页面跳转,但是内容成功返回,页面没有跳转。

下面是代码:

window.location.href = `${res.url}?content=${res.content}`;

上面 res.url 返回的是一个页面地址,而 res.content 返回的是需要传递的参数,包含 html 内容。

下面是返回的内容示例:

/payment/redirect?content=<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>正在为您跳转到支付页面,请稍候...</title>

出现问题的原因:

页面无法跳转的原因是因为参数内容中包含了 HTML 标记和脚本代码,导致 JavaScript 代码无法正常执行。

解决方案:

在处理 URL 参数时,需要对参数进行编码,确保其在 UR L中的传递是有效和安全的。可以使用 JavaScript 内置的函数encodeURIComponent()对参数进行编码,然后在 URL 中使用已编码的参数。

最后修改代码如下:

success: (res) => {
if (res.status === 'ok') {
window.location.href = `${res.url}?content=${encodeURIComponent(res.content)}`;
}
},

这样页面就可以正常跳转了。


参考资料:

1、ChatGPT


其它相关推荐:

1、JavaScript xhr 和 fetch 那个更好

2、Angular HttpClient HttpParams() 设置参数

3、JavaScript try catch 理解

4、canonical 标签介绍

5、读jQuery之六(缓存数据)


黄兵个人博客原创。

转载请注明出处:黄兵个人博客 - window.location.href 页面无法跳转问题

分享到:

发表评论

评论列表