队
我正在开发Angular JS应用程序。当我想测试应用程序时,我曾经只是从文件系统直接将应用程序启动到浏览器中。网址就像
file:///Users/easwar/AngularApp/index.html
当我需要在Chrome中启动应用时,我需要使用以下命令从终端打开浏览器
open -a Google\ Chrome --args --disable-web-security -–allow-file-access-from-files
避免以下错误。
" XMLHttpRequest无法加载,跨源请求是 仅支持协议方案:http,data,chrome, chrome-extension,https,chrome-extension-resource。"
但令人惊讶的是,在Safari中,该应用程序可以正常运行而不会执行此类操作。
我想找一下这些浏览器行为有什么区别?为什么它在Safari中工作并且没有调整就无法在Chrome中工作?
答案 0 :(得分:1)
简而言之:谷歌浏览器不喜欢本地交叉电话。 更多信息请访问:Cross origin requests are only supported for HTTP but it's not cross-domain。
这是Googles的隐私和安全政策:他们尽量避免风险,本地文件调用似乎就是其中之一。
详细了解跨源请求及其在Google Chrome中的处理方式:https://developer.chrome.com/extensions/xhr
如果您不想使用这些控制台命令,您可能希望寻找一个Web服务器来托管它(或本地Web服务器)。