Javascript Youtube api响应未提供数据

Javascript Youtube api响应未提供数据,javascript,axios,youtube,Javascript,Axios,Youtube,我正在尝试使用动态查询向google发出请求。我或多或少地从另一个项目复制了我的流程,在这个项目中请求工作正常。我已经在GoogleAPI仪表板上的一个新项目文件夹中“启用”了api,并使用了一个新的api密钥 首先,这里是工作版本的代码: axios .get( `https://youtube.googleapis.com/youtube/v3/search?key=${YOUTUBE_API}&type=video&p

我正在尝试使用动态查询向google发出请求。我或多或少地从另一个项目复制了我的流程,在这个项目中请求工作正常。我已经在GoogleAPI仪表板上的一个新项目文件夹中“启用”了api,并使用了一个新的api密钥

首先,这里是工作版本的代码:

axios
            .get(
                `https://youtube.googleapis.com/youtube/v3/search?key=${YOUTUBE_API}&type=video&part=snippet&maxResults=1&q=${selectedTrack}`
            )
            .then((response) => {
                console.log(response);
                setVideo(response.data.items[0].id.videoId);
            })
            .catch((err) => {
                setLoading(true);
                console.log(err.response);
            });
从一个不起作用的:

const aTag = document.querySelectorAll(".movie");
    console.log(aTag);
    for (let i = 0; i < aTag.length; i++) {
        aTag[i].addEventListener("click", () => {
            const title = aTag[i].childNodes[1].alt;
            axios.get(
                `https://youtube.googleapis.com/youtube/v3/search?key=${API_KEY}&type=video&part=snippet&maxResults=1&q=${title}`
            )
                .then((response) => {
                    console.log("res", response);
                })
                .catch((err) => {
                    console.log(err.response);
                });
        });
我不是很有经验,所以我希望我错过了一些明显的东西-任何建议都是非常受欢迎的


更新:当我跟踪url时,它说API密钥无效。正如我所说,我已经完成了创建新的API凭据并在仪表板上启用的过程,可能还遗漏了一些东西,尽管我不完全理解,但我将把它留给可能有相同问题的任何人。最后,问题似乎在于axios没有做出应有的响应。我没有看到任何错误表明这一点,但为了让事情顺利进行,我改为不带axios的异步函数,并以这种方式获取json数据

链式链接。那么这样的链接当然不是很优雅,但下面是工作代码:

async function youtube() {
    await fetch(
        `https://www.googleapis.com/youtube/v3/search?part=snippet&key=AIzaSyDUppjf_r8veyOTZQ9PCFwlburDc9693-c&type=video&q=${title}` +
            `trailer`
    )
        .then((result) => {
            const newRes = result.json();
            return newRes;
        })
        .then((newRes) => {
            embedCode = newRes.items[0].id.videoId;
        })
        .catch((err) => {
            console.log(err.response);
        });
    const iframe = document.querySelector("iframe");
    iframe.setAttribute("src", `https://www.youtube.com/embed/${embedCode}`);
}


这似乎是cors的问题。也许当它将Youtube API设置为特定IP或域时,它就获得了使用该API的授权。这两种情况是否都适用于具有不同地址的应用程序?
async function youtube() {
    await fetch(
        `https://www.googleapis.com/youtube/v3/search?part=snippet&key=AIzaSyDUppjf_r8veyOTZQ9PCFwlburDc9693-c&type=video&q=${title}` +
            `trailer`
    )
        .then((result) => {
            const newRes = result.json();
            return newRes;
        })
        .then((newRes) => {
            embedCode = newRes.items[0].id.videoId;
        })
        .catch((err) => {
            console.log(err.response);
        });
    const iframe = document.querySelector("iframe");
    iframe.setAttribute("src", `https://www.youtube.com/embed/${embedCode}`);
}