在不违反同源策略的情况下获取本地文件并从网络获取数据?
Get local files and get data from the web without violating Same Origin Policy?
您好,我正在尝试开发一个可以访问本地文件和 http
上的文件的网络应用程序。该页面本身是在本地加载的,但会 ajax 调用 Web 服务器。
有没有办法在不违反同源策略的情况下做到这一点?
我知道有 many many 方法可以禁用同源策略,但我正在寻找一种合法的方法,因为我不想每次都传递命令行标志。
此外,在 Chrome 上,每次传入这些标志时都会出现一条相当烦人的弹出消息。
有办法解决这个问题吗?
您控制网络服务器吗?如果是这样,这可以通过添加 CORS header 和 运行 本地 http 服务器的组合来实现。
你可能知道,CORS doesn't support local file:// access。但是,如果您在本地 运行 一个简单的 http 服务器,您可以通过 HTTP 提供那些完全相同的文件。 CORS 将愉快地支持来自本地主机的 cross-origin HTTP 请求。
首先,您需要以某种方式提供本地文件。为此,有许多简单的 http 网络服务器。一种这样的方法是 Python 的 SimpleHTTPServer。如果您安装了 Python,您可以通过 运行ning:
启动一个为当前目录提供服务的本地网络服务器
python -m SimpleHTTPServer 8080
其次,您需要将 http://localhost:8080
添加到远程网络服务器上 Access-Control-Allow-Origin header 的列表中。
注意:将 localhost 添加到生产服务器的允许来源列表中可能不是一个好主意。服务器应该只针对他们信任的网页或真正 public.
的数据绕过浏览器的 same-origin 策略
您好,我正在尝试开发一个可以访问本地文件和 http
上的文件的网络应用程序。该页面本身是在本地加载的,但会 ajax 调用 Web 服务器。
有没有办法在不违反同源策略的情况下做到这一点?
我知道有 many many 方法可以禁用同源策略,但我正在寻找一种合法的方法,因为我不想每次都传递命令行标志。
此外,在 Chrome 上,每次传入这些标志时都会出现一条相当烦人的弹出消息。
有办法解决这个问题吗?
您控制网络服务器吗?如果是这样,这可以通过添加 CORS header 和 运行 本地 http 服务器的组合来实现。
你可能知道,CORS doesn't support local file:// access。但是,如果您在本地 运行 一个简单的 http 服务器,您可以通过 HTTP 提供那些完全相同的文件。 CORS 将愉快地支持来自本地主机的 cross-origin HTTP 请求。
首先,您需要以某种方式提供本地文件。为此,有许多简单的 http 网络服务器。一种这样的方法是 Python 的 SimpleHTTPServer。如果您安装了 Python,您可以通过 运行ning:
启动一个为当前目录提供服务的本地网络服务器python -m SimpleHTTPServer 8080
其次,您需要将 http://localhost:8080
添加到远程网络服务器上 Access-Control-Allow-Origin header 的列表中。
注意:将 localhost 添加到生产服务器的允许来源列表中可能不是一个好主意。服务器应该只针对他们信任的网页或真正 public.
的数据绕过浏览器的 same-origin 策略