我有一个刚刚启动的 wordpress 网站,我正尝试从我们设置为广告管理器的 joomla 网站向其中嵌入一些广告。
广告管理器提供了一个用于嵌入广告区域的脚本。我过去经常使用它,它总是很管用。试图让脚本在这个新服务器上运行不是在玩球。
我制作了以下 test.php
文件并将其上传到广告服务器和 wordpress 网站。如果我在广告服务器上加载它,它会拉取广告,如果我在 wordpress 服务器上打开它,脚本似乎不会执行。我还尝试使用 jquery 函数 getScript
,这在广告服务器上有效,但在 wordpress 服务器上无效。
<!doctype html>
<html>
<head></head>
<body>
<script type="text/javascript" language="javascript" src="http://ads.childmags.com.au/index.php?option=com_adagency&controller=adagencyAds&task=remote_ad&tmpl=component&format=raw&zid=103"></script>
</body>
</html>
<!doctype html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
</head>
<body>
<script>$.getScript("http://ads.childmags.com.au/index.php?option=com_adagency&controller=adagencyAds&task=remote_ad&tmpl=component&format=raw&zid=103")</script>
</body>
</html>
是否可能是需要更改的 wordpress 服务器配置?有什么办法可以解决这个问题吗?
最佳答案
您正在将一个站点的脚本用于另一个站点,因此可能是跨源问题。
要解决此问题,您必须添加 crossorigin="anonymous"
喜欢:- <script type="text/javascript" crossorigin="anonymous" language="javascript" src="http://ads.childmags.com.au/index.php?option=com_adagency&controller=adagencyAds&task=remote_ad&tmpl=component&format=raw&zid=103"></script>
当使用“CORS”加载请求时存在 Crossorigin 属性,这现在是在未从“同源”加载时进行 SRI 检查的要求。
不幸的是,Wordpress 无法在排队的脚本上正确处理属性。
关于JavaScript 不在外部域上执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45429445/