如果我在浏览器中输入以下网址:
https://www.googleapis.com/youtube/v3/search?part=snippet&q=algebra&key={My_API_KEY}
它工作正常,但是,当我尝试使用 Angular 来获取此内容时,我收到一个未经授权的错误:
$http.get("https://www.googleapis.com/youtube/v3/search?part=snippet&q=algebra&key={MY_API_KEY}");
此外,我的密钥设置为"允许任何引用"。
为什么这是一种方式,而另一种方式却不行?
我有一个httpInterceptor设置,用于向我之前设置的api的请求注入授权标头。这导致请求未定义。我将拦截器更改为将授权设置为未定义,之后它就工作了。
当您在浏览器中打开它时,您可以直接访问文件 当您尝试从代码中执行此操作时,您必须考虑 CORS 和跨域调用
你要做的是使用jsonp
$http.get("https://www.googleapis.com/youtube/v3/search?
part=snippet&q=algebra&key={MY_API_KEY}&callback=JSON_CALLBACK");