需要帮助!我有一个wordpress网站作为父域
https://www.example.com
我在同一个父级的子域中有一个Angular / JavaScript应用
https://site.example.com
我能够解决CORS问题,因此Wordpress父登录页面(wp-login.php)在子域的iframe中可以很好地加载,但是当我尝试根据iframe url索引重新加载window.location时,就会出现问题。这是我的iframe JavaScript代码
(function () {
app
.controller('ModalGuestPopupController', [
'$scope', '$rootScope', 'socket', 'ngDialog', '$window',
function ($scope, $rootScope, socket, ngDialog, $window) {
$rootScope.$on('ngDialog.opened', function (e, $dialog) {
angular.element('.menu .item').tab();
angular.element("#login-iframe").get(0).onload = function() {
checkLogin($window);
};
});
function checkLogin($window) {
var iframe = angular.element('#login-iframe');
var currentUrl = iframe.get(0).contentWindow.location.href;
if(currentUrl.indexOf('wp-login.php') == -1) {
$window.location.reload();
} else {
setTimeout(checkLogin, 1000, $window);
}
}
}]);
})();
这是浏览器控制台(Chrome和Firefox)上的错误消息
iframe.controller.js:20
Uncaught DOMException: Blocked a frame with origin "https://subdomain.example.com" from accessing a cross-origin frame.
at checkLogin (https://subdomain.example.com/app/controllers/iframe.controller.js:20:35)
at HTMLIFrameElement.angular.element.get.onload (https://subdomain.example.com/app/controllers/iframe.controller.js:11:25)