Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/479.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 对使用GoogleAPI获取感到困惑吗_Javascript_Api_Fetch - Fatal编程技术网

Javascript 对使用GoogleAPI获取感到困惑吗

Javascript 对使用GoogleAPI获取感到困惑吗,javascript,api,fetch,Javascript,Api,Fetch,我正在学习如何使用Fetch并使用以下代码来获取YouTuBe视频详细信息,效果很好: const fetchPromise = fetch('https://www.googleapis.com/youtube/v3/videos?id=VIDEOID&part=contentDetails&key=MYKEY'); 现在,如果我尝试将密钥作为如下参数传递: const fetchPromise = fetch('https://www.googleapis.com/yout

我正在学习如何使用Fetch并使用以下代码来获取YouTuBe视频详细信息,效果很好:

const fetchPromise = fetch('https://www.googleapis.com/youtube/v3/videos?id=VIDEOID&part=contentDetails&key=MYKEY');
现在,如果我尝试将密钥作为如下参数传递:

const fetchPromise = fetch('https://www.googleapis.com/youtube/v3/videos', {
  key:'MYKEY',
  id:'VIDEOID',
  part:'contentDetails',
  method:'GET'
});
它不起作用。我收到一个错误“请求缺少有效的API密钥。” 我的问题是,为什么API完全忽略我传递的参数?我的格式错了吗?谢谢

看看这张照片

fetch
的第二个参数是“包含要应用于请求的任何自定义设置的对象。”

它不是要包含在查询字符串中的键值对的集合
fetch
没有该选项

如果需要,请使用:


哦,我明白了!我阅读了文档,完全误解了这一部分。非常感谢你,我已经想了一段时间了,哈哈。
const data = { 
  key:'MYKEY',
  id:'VIDEOID',
  part:'contentDetails',
};
const base_url = "https://www.googleapis.com/youtube/v3/videos";
const url = new URL(base_url);
Object.entries(data).forEach( ([key, value] => url.searchParams.append(key, value) );
const fetchPromise = fetch(url, {
  method:'GET'
});