JavaScript构造URL跳转报错:Failed to construct 'URL'问题求助
错误修复:URL构造失败的问题
问题原因
new URL()构造函数单独传入相对路径(比如/tryLogin?id=xxx&password=xxx)时,会被判定为无效URL,因为它需要一个完整的基准URL(比如当前站点的域名)作为第二个参数。
解决方案
有两种简单的修复方式:
方案1:直接跳转(最简洁)
不需要使用URL构造函数,直接把相对路径赋值给window.location.href即可:
function functionclick() { let id = document.getElementById('exampleDropdownFormEmail1').value; let password = document.getElementById('exampleDropdownFormPassword1').value; if (id === "" || password === "") { alert("회원 정보를 입력하세요"); history.back(); } else { var path= "/tryLogin?id=" + id + "&password=" + password; window.location.href = path; } }
方案2:保留URL构造(需添加基准URL)
如果一定要用URL构造函数,需要传入当前站点的基准URL作为第二个参数:
function functionclick() { let id = document.getElementById('exampleDropdownFormEmail1').value; let password = document.getElementById('exampleDropdownFormPassword1').value; if (id === "" || password === "") { alert("회원 정보를 입력하세요"); history.back(); } else { var path= "/tryLogin?id=" + id + "&password=" + password; const url = new URL(path, window.location.origin); window.location.href = url; } }
额外提示
把密码放在GET请求的URL参数里存在安全风险,建议后续改用POST请求提交登录信息。
内容的提问来源于stack exchange,提问作者참직김
相关产品推荐
相关产品推荐

