在我的几个adsense运行网站上,我遇到了以下错误:
无法将消息发布到[ http://] googleads.g.doubleclick.net.收件人来源 http://www.anekdotz.com.
不安全的JavaScript尝试使用URL [ http://] www.anekdotz.com/从URL [ http://] googleads.g.doubleclick.net/pagead/ads?client=ca-pub-9099580055602120&output=访问框架HTML&H = 250&广告位名称= 9210181593&W = 300&闪光= 10.0.42&URL = HTTP%3A%2F%2Fwww.anekdotz.com%2F&DT = 1269901036429&相关= 1269901036438&FRM = 0&ga_vid = 711000587.1269901037&ga_sid = 1269901037&ga_hid = 654061172&ga_fc = 0&u_tz = -240&u_his = 2&u_java = 1&u_h = 900&u_w = 1440&u_ah = 878&u_aw = 1436&u_cd = 24&u_nplug = 10&u_nmime = 101&biw = 1365&bih = 806&eid = 44901212&fu = 0&ifi = 1&dtd = 153&xpc = Xkfk1oufPQ&p = http%3A // www.anekdotz.com. 域,协议和端口必须匹配.
(来自Chrome javascript控制台)
广告似乎正确显示,它不会影响我的原生javascript代码.但是,有时这些错误似乎会减慢页面加载速度.我该如何解决这个问题?
(我修改了网址,让我发布这个,因为我是新用户)
谷歌搞砸了他们的剧本.你无能为力.
出于某种原因http://pagead2.googlesyndication.net/pagead/expansion_embed.js
,AdSense脚本包含在父页面中,尝试使用新的HTML5 postMessage工具将有关广告的信息发送到新创建的广告中以保存广告:
ha(this, function (f, e) { d[Pa](this.a[A]+"|"+f+":"+e, this.la) });
是啊.那里有一些很好的缩小/混淆代码.相信我,Pa
是'postMessage'
!
targetOrigin
此调用中的参数this.la
设置为http://googleads.g.doubleclick.net
.但是,新的iframe是在src
设置为的情况下编写的about:blank
.这与目标原点不匹配,因此浏览器必须拒绝发送消息.但是,只有Chrome似乎会在控制台日志中丢掉一个实际的抱怨.
根本不知道为什么它会这样做,更不用说为什么它不仅仅是'*'
用作目标来源......我真的不喜欢涉足混淆的脚本以找出答案.但是,此错误不应导致页面加载速度变慢.如果你看到暂停,它通常会解析并获取其他外部脚本.
谷歌试图利用浏览器的怪癖,一些浏览器忽略了Windows的同源策略,其中包含:空白作为URL,允许该窗口提交XMLHttpRequest,或者在这种情况下,将postMessage请求提交给任何站点.
据我所知,浏览器最近一直禁用此行为.你必须有一个这样的补丁浏览器.
希望这个破碎的功能不会影响您从广告中赚钱的能力.
由于您的网站没有自己的错误而导致Javascript错误,这很烦人,但是当您在页面上运行其他人的Javascript时,您必须接受这种错误.
这是正常的,因为您的浏览器会阻止来自其他网站的CSRF攻击.
要允许googleads...
访问您的网站并解决此问题,请创建一个crossdomain.xml
在您的webroot中命名的文件,并使用以下内容填充它:
要测试它,请访问您的域http://your-domain.com/crossdomain.xml并确保该页面没有错误.您还允许使用通配符等(请参阅参考资料).完成后,刷新页面.希望有所帮助.
实例:http: //www.blanjamudah.com/crossdomain.xml
参考:http : //en.wikipedia.org/wiki/Cross-site_request_forgery http://curtismorley.com/2007/09/01/flash-flex-tutorial-how-to-create-a-crossdomainxml-file/