首页 > chrome 直接打开静态页面问题

chrome 直接打开静态页面问题

用angular写了个小demo,以前直接点html就直接能运行的,现在报跨域问题了。注意,目前没涉及到ajax请求,只是简单的静态页面加载而已,不包括任何数据请求。网上的解决方案都是改浏览器和在服务器中运行。我想知道有没有改代码或者在代码中配置,不改浏览器就能运行的方案!


首先,你要知道为什么会出现这个问题。

你直接点击 HTML 文件运行的话,浏览器是采用了 file 协议来打开这个 HTML 文件的。 Angular 内部封装的 $http 是基于浏览器的 XMLHttpRequest 来实现的,而浏览器的 XMLHttpRequest 在发送 ajax 请求的时候并不支持使用 file 协议,这样就会造成错误了。

从你的描述来看,应该是之前的代码没有涉及到 ajax 请求,所以能够直接运行起来。而你后面添加了执行 ajax 请求相关的代码,所以就报错了。

所以,解决办法你看着办吧。


jsonp啊


要把跨域的问题控制台报错信息 贴出来


跨子域可以用document.domain来解决,完全跨域请用jsonp.


跨域问题需要在服务器端解决,这是在响应头内加上Access-Control-Allow-Origin 并表明可以访问的域名或者使用通配符“*”。

或者你将所有资源都放在你的域名下,或者通过你的域名进行反向代理。

如果你想在网络上开放给所有人使用你的程序,估计只有这些办法了。

如果你能找到其他办法,请通知我。因为我也有这问题。

【热门文章】
【热门文章】