Youtube API程序赢得';t运行--JavaScript
我现在对API还比较陌生。我试图允许用户搜索youtube视频,并让它显示前三个结果。参考下面的代码(我使用youtube视频“使用youtube API搜索视频”-FSquare寻求帮助并给予他们信任-有一些修改,但并不完全相同;它只是用来帮助我了解API的工作原理): HTML (index.html) 现在我想看看控制台中的结果是什么样的。但是,当我在简单的Python HTTP服务器上运行它时,控制台中会出现以下错误:Youtube API程序赢得';t运行--JavaScript,javascript,html,api,youtube,Javascript,Html,Api,Youtube,我现在对API还比较陌生。我试图允许用户搜索youtube视频,并让它显示前三个结果。参考下面的代码(我使用youtube视频“使用youtube API搜索视频”-FSquare寻求帮助并给予他们信任-有一些修改,但并不完全相同;它只是用来帮助我了解API的工作原理): HTML (index.html) 现在我想看看控制台中的结果是什么样的。但是,当我在简单的Python HTTP服务器上运行它时,控制台中会出现以下错误: Uncaught DOMException: Failed to r
Uncaught DOMException: Failed to read the 'contentDocument' property from 'HTMLIFrameElement': Blocked a frame with origin "http://127.0.0.1:8000" from accessing a cross-origin frame.
at contents (chrome-extension://laankejkbhbdhmipfmgcngdelahlfoji/core/vendor/jquery.min.js:2:5154)
at Function.map (chrome-extension://laankejkbhbdhmipfmgcngdelahlfoji/core/vendor/jquery.min.js:1:14862)
at ot.fn.init.ot.fn.(anonymous function) [as contents] (chrome-extension://laankejkbhbdhmipfmgcngdelahlfoji/core/vendor/jquery.min.js:2:5271)
at HTMLIFrameElement.eval (chrome-extension://laankejkbhbdhmipfmgcngdelahlfoji/components/ActivityMonitor/views/overlay/ActivityMonitorOverlayView.js:1:1894)
at Function.each (chrome-extension://laankejkbhbdhmipfmgcngdelahlfoji/core/vendor/jquery.min.js:1:14059)
at ot.fn.init.each (chrome-extension://laankejkbhbdhmipfmgcngdelahlfoji/core/vendor/jquery.min.js:1:11922)
at e.bindActivityDetectors (chrome-extension://laankejkbhbdhmipfmgcngdelahlfoji/components/ActivityMonitor/views/overlay/ActivityMonitorOverlayView.js:1:1853)
at e.init (chrome-extension://laankejkbhbdhmipfmgcngdelahlfoji/components/ActivityMonitor/ActivityMonitorController.js:1:255)
at onLoaded (chrome-extension://laankejkbhbdhmipfmgcngdelahlfoji/core/content.js:1:979)
at eval (chrome-extension://laankejkbhbdhmipfmgcngdelahlfoji/core/ComponentFactory.js:1:943)
从研究中可以看出,我需要在HTTPS服务器上运行此操作以查看结果,但我不清楚如何执行此操作,或者这是否是原因。看起来您的代码试图访问跨源帧,而不是使用HTTPS访问任何内容-但这只是猜测
阻止帧的原因。。。从访问跨原点帧
实际上意味着我要防止这种情况发生吗?我是否必须在特定的服务器上运行此功能,或者这会导致身份验证问题?帧无法(直接)访问跨源帧。。。没有什么可以“阻止”的,m这叫做安全那么我该怎么做呢?我的代码的哪一部分产生了这个错误?哪一部分?我不知道,你有错误堆栈跟踪,你告诉我!我的猜测是它与iframe有关,但这纯粹是基于错误消息中两次提到的单词frame
的猜测
$(document).ready(function() {
$(function() {
$("form").on("submit", function(e) {
e.preventDefault();
//prepare request
var request = gapi.client.youtube.search.list({
part: "snippet",
type: "video",
q: encodeURIComponent($("#searchText").val()).replace(/%20/g, "+"),
maxResults: 3,
order: "viewCount",
publishedAfter: "2016-01-01T00:00:00Z" //Will get videos published after midnight, 2015.
});
//execute request
request.execute(function(response) {
console.log(response);
});
});
});
function init() {
gapi.client.setApiKey(ApiKey);
gapi.client.load("youtube", "v3", function() {
alert("The Youtube API is ready! Use away.");
});
}
})
Uncaught DOMException: Failed to read the 'contentDocument' property from 'HTMLIFrameElement': Blocked a frame with origin "http://127.0.0.1:8000" from accessing a cross-origin frame.
at contents (chrome-extension://laankejkbhbdhmipfmgcngdelahlfoji/core/vendor/jquery.min.js:2:5154)
at Function.map (chrome-extension://laankejkbhbdhmipfmgcngdelahlfoji/core/vendor/jquery.min.js:1:14862)
at ot.fn.init.ot.fn.(anonymous function) [as contents] (chrome-extension://laankejkbhbdhmipfmgcngdelahlfoji/core/vendor/jquery.min.js:2:5271)
at HTMLIFrameElement.eval (chrome-extension://laankejkbhbdhmipfmgcngdelahlfoji/components/ActivityMonitor/views/overlay/ActivityMonitorOverlayView.js:1:1894)
at Function.each (chrome-extension://laankejkbhbdhmipfmgcngdelahlfoji/core/vendor/jquery.min.js:1:14059)
at ot.fn.init.each (chrome-extension://laankejkbhbdhmipfmgcngdelahlfoji/core/vendor/jquery.min.js:1:11922)
at e.bindActivityDetectors (chrome-extension://laankejkbhbdhmipfmgcngdelahlfoji/components/ActivityMonitor/views/overlay/ActivityMonitorOverlayView.js:1:1853)
at e.init (chrome-extension://laankejkbhbdhmipfmgcngdelahlfoji/components/ActivityMonitor/ActivityMonitorController.js:1:255)
at onLoaded (chrome-extension://laankejkbhbdhmipfmgcngdelahlfoji/core/content.js:1:979)
at eval (chrome-extension://laankejkbhbdhmipfmgcngdelahlfoji/core/ComponentFactory.js:1:943)