【发布时间】:2018-10-13 01:03:16
【问题描述】:
如果包含在 AJAX 响应中,如何呈现 YouTube 订阅按钮。我使用了下面的函数,但它在控制台日志中返回了这个错误:
SecurityError: Permission denied to access property "blablabla" on cross-origin object
function load_js() {
var head = document.getElementsByTagName('head')[0];
var script = document.createElement('script');
script.type = 'text/javascript';
script.src = 'https://apis.google.com/js/platform.js';
head.appendChild(script);
}
$.ajax({
type: "POST",
url: ajaURL,
data: {
action: 'my_action',
},
success: function(response) {
// response = <div class="g-ytsubscribe" data-channelid="CHANNEL_ID" data-layout="default" data-count="default"></div>
$('.youtube-btn-container').html(response);
load_js();
}
});
【问题讨论】:
-
你所提供的帮助不大。 "Permission denied to access property 'blablabla'" 我没有看到任何尝试访问任何属性的尝试,只是设置了带有响应的元素的
html()。ajaURL是针对 youtube 还是您自己的服务器端文件? -
ajax 目标服务器端文件
-
@NewToJS 如果我添加 HTML "" 没有 ajax 它可以工作并且它不会返回任何错误。但是使用 ajax 我必须重新加载 platform.js 文件才能工作
-
您自己的服务器端文件并使用相同的域?您的问题缺少非常重要的信息,因此很难为您提供帮助,因此请更新您的问题并包含所有相关信息。
-
@NewToJS 我使用了方法 gapi.ytsubscribe.render。这里是完整的例子:developers.google.com/youtube/subscribe/…
标签: javascript ajax youtube-javascript-api