如何通过JavaScript获取ID并嵌入到URL中实现跳转?
解决JS获取ID后嵌入URL并跳转的问题
你当前的问题核心有两个:
- meta refresh执行时机错误:它会在页面加载初期就触发跳转,这时候你的AJAX请求还没完成,根本拿不到目标ID,自然没法嵌入URL。
- URL拼接方式完全错误:直接把
<p id="table">写进URL里不生效,这是HTML标签,不是动态变量。
解决方案:用JS完成URL拼接+跳转
删掉无效的meta标签,直接在AJAX回调里处理ID拼接和页面跳转,步骤如下:
修正后的HTML代码
<html lang="en"> <head> <meta charset="UTF-8"> <link rel="stylesheet" href="./style.css"> </head> <body> <!-- 如需显示ID就保留这个标签,不需要可直接删除 --> <p id="table"></p> <script src="https://code.jquery.com/jquery-3.5.1.js"></script> <script src="./script.js"></script> </body> </html>
修正后的JavaScript代码
$(document).ready(function() { // 从API获取剪辑数据 $.getJSON("https://api.omny.fm/orgs/56ccbbb7-0ff7-4482-9d99-a88800f49f6c/programs/a49c87f6-d567-4189-8692-a8e2009eaf86/clips/", function(data) { const clipId = data.Clips[0].Id; // 如需显示ID,保留这行 $('#table').text(clipId); // 构造目标URL并执行跳转 const targetUrl = `https://traffic.omny.fm/d/clips/56ccbbb7-0ff7-4482-9d99-a88800f49f6c/a49c87f6-d567-4189-8692-a8e2009eaf86/${clipId}/audio.mp3`; window.location.href = targetUrl; }) // 可选:添加请求失败的处理逻辑 .fail(function() { alert("获取音频ID失败,请刷新重试"); }); });
补充说明
- 用ES6模板字符串(反引号
`)拼接URL更直观,也可以用传统加号拼接:"基础URL/" + clipId + "/audio.mp3" - 必须在AJAX请求成功的回调里执行跳转,确保拿到ID后再操作,避免空值问题
内容的提问来源于stack exchange,提问作者AndorBird
相关产品推荐
相关产品推荐

