在localhost上运行的Sails的历史记录和XHR问题

时间:2015-10-07 20:10:52

标签: json ajax cors sails.js mithril.js

使用默认配置,如果我在localhost中运行其Sails服务器,我无法在我的Mithril应用程序中制作XHR。我得到的只是:

  

XMLHttpRequest无法加载http://localhost:1337/json/test-realms.json。 ' Access-Control-Allow-Origin'标头包含无效值''。起源' null'因此不允许访问。

如果我enable CORS allRoutes: true, origin: '*'问题消失了,我会得到:

  

DOMException:无法执行' replaceState' on'历史记录':包含网址' http://localhost:1337/#!/'的历史状态对象无法在原文为' null'。

的文档中创建

这究竟是什么问题?

更新

  • 我使用sails lift作为服务器。
  • 通过http://test.pink加载网络应用。域通过HOSTS文件设置为LAN IP。
  • 没有资源通过file:///localhost加载。

1 个答案:

答案 0 :(得分:1)

原来问题与内容安全策略有关。我设置了sandbox 'allow-scripts' 'allow-forms',根据thisthis将页面视为具有唯一来源的iframe。

停用sandbox政策或添加allow-same-origin足以修复此问题。