Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 无法将document.domain设置为herokuapp.com吗?怎么用? 问题_Javascript_Heroku_Cross Domain - Fatal编程技术网

Javascript 无法将document.domain设置为herokuapp.com吗?怎么用? 问题

Javascript 无法将document.domain设置为herokuapp.com吗?怎么用? 问题,javascript,heroku,cross-domain,Javascript,Heroku,Cross Domain,document.domain='herokuapp.com'用于在{some#u app}运行的登台应用程序。herokuapp.com给出以下控制台错误: Uncaught SecurityError: Failed to set the 'domain' property on 'Document': 'herokuapp.com' is a top-level domain. 调查 我可以通过尝试将域设置为页面的TLD在任何页面上触发此错误。例如,现在打开控制台并尝试运行documen

document.domain='herokuapp.com'
用于在
{some#u app}运行的登台应用程序。herokuapp.com
给出以下控制台错误:

Uncaught SecurityError: Failed to set the 'domain' property on 'Document': 'herokuapp.com' is a top-level domain.
调查 我可以通过尝试将域设置为页面的TLD在任何页面上触发此错误。例如,现在打开控制台并尝试运行
document.domain='com'

您不希望文档的域是TLD,因为这将允许来自同一TLD的任何脚本与其通信。由此推断,任何Heroku应用程序都可以与域名为herokuapp.com的应用程序通信,因为它们都运行在herokuapp.com的子域上。这可能是一个安全问题,任何人谁不严格禁用他们的登台应用程序在一天结束

根据我的观察,Heroku通过禁止将herokuapp.com设置为其页面的域来保护其客户似乎是谨慎的。他们是怎么做到的?我觉得可以安全地假设浏览器知道在所有TLD上出错,但不知何故,
herokuapp.com
被浏览器注册为TLD并触发相同的错误。我检查了响应标题,到目前为止还没有找到任何内容

变通办法 很抱歉,如果你来这里寻找解决方案。到目前为止,我只找到了更多的信息,但我想把这个问题放在一起,为其他人提供一些有用的信息。我正在使用下面的一些潜在解决方法

  • 使用其他工具进行登台
  • 避免Heroku上的子域和Heroku上的域设置
  • 设置用于登台的子域,并将其指向Heroku以解决此问题
  • 相关的
    我还发布了关于首先设置域的问题()。我也很想知道是否有更好的解决方案。

    文档中没有明确说明域
    解释了如何以及为什么这样做

    tl;博士 为什么:这很危险

    如何:HeloUpApp.com包含在Mozilla基金会的