为什么设置 document.domain 要求我在所有弹出窗口和 iframe 中也设置它?
我正在为聊天脚本使用长轮询 iframe 解决方案。不幸的是,这需要我在 iframe 和主文档中设置 document.domain='yourdomain.com',因为 iframe 是子域调用。
最大的问题是......现在我所有其他使用弹出窗口和 iframe 的脚本都被破坏了。他们现在要求我也将 document.domain 放入其中。它确实解决了这个问题,但这根本不是一个理想的解决方案。还有其他方法可以解决这个问题吗?
I'm using a long-polling iframe solution for a chat script. Unfortunately, this requires me to set document.domain='yourdomain.com' in the iframe and main document, because the iframe is a subdomain call.
The huge problem is...now all my other scripts that use popups and iframes are broken. They now require me to put document.domain in them too. It does fix it, but this is not an ideal solution at all. Is there another way around this problem?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
JavaScript出于安全问题存在跨域限制。理想/简单的解决方案实际上是像您建议的那样定义
document.domain
。还有其他替代解决方案,例如 JSONP 或 iFrame 代理。更多信息请参见:iFrame 跨域 JavaScript 调用(第二个链接在该页面中不起作用,但这里有一个很好的资源 iFrame 代理 jQuery )。
希望这有帮助。
JavaScript has cross-domain limitations for security issues. The ideal/simple solution is in fact defining the
document.domain
like you are suggesting.There are other alternative solutions like JSONP or iFrame proxying. More info here: iFrame Cross domain JavaScript calls (second link in that page doesn't work but here's a good resource iFrame proxying jQuery).
Hope this helps.