错误消息是"make sure this cross-domain message is being sent to the intended domain"
。
RSPEC-2819的此检查规则
在包含任何机密信息的邮件中,作者不应该在targetOrigin参数中使用通配符关键字(*),否则,无法保证邮件仅传递给预期的收件人。
我假设它要求*
不能用作targetOrigin
,但是当我将预期的域用作targetOrigin
时,它仍然显示警告,如下所示:
请有人告诉我如何通过这张支票,
任何帮助将不胜感激
答案 0 :(得分:2)
仅当在名称中包含postMessage
的对象上调用方法window
时,此规则才检测。源代码:PostMessageCheck.java。要绕过它,只需将contentWindow
对象分配给另一个对象,如下所示:
var content = this.elem.contentWindow;
content.postMessage('your message', window.location.origin);
答案 1 :(得分:0)
在 sonarQube 中遇到过类似的问题。下面修复工作。直接去掉使用window对象就行了。
实际代码:
window.parent.postMessage("data", parenturl);
修复:
var content=window;
content.parent.postMessage("data",parenturl);