文章引用:
为什么需要代理?
所有现代网络浏览器对网络连接施加了安全限制,包括对XMLHttpRequest的调用。 此限制可防止脚本或应用程序与除最初来自网页的Web服务器之外的任何Web服务器建立连接(Internet Explorer将允许跨域请求,如果该选项已在首选项中启用)。 如果你的Web应用以及应用所使用的XML数据都直接来自同一台服务器,则不会遇到此限制。
![](https://img.haomeiwen.com/i6150392/9efcb2c12dce08fb.gif)
但是,如果你是从一台Web服务器上为Web应用程序提供服务,并且从另外一台服务器上请求数据,假设是雅虎的服务器,那么浏览器会阻止访问。
![](https://img.haomeiwen.com/i6150392/8b31a0ec2a4d362c.gif)
这个问题有许多解决方案,但最常用的方法是在你的Web服务器上设置一个代理。 记住,不是通过XMLHttpRequest直接调用Yahoo Web服务,而是通过Web服务器代理调用Yahoo Web服务,然后,将调用结果返回给Web服务,并将数据传回给客户端应用程序 。由于connection请求的是你的服务器,所以返回数据结果也应该是你的服务器执行 。
![](https://img.haomeiwen.com/i6150392/8317f0970971f0f7.gif)
出于安全考虑,在Web服务器上设置的任何代理理应受到限制。泛滥使用代理导致的结果就是可以请求到任何一个web site url上 。 虽然很难仅从你的应用程序去限制与代理的连接,但可以防止代理连接到除指定服务器以外的服务器。 代理本身通过硬编码声明请求URL或提供限制选项。 这使得代理窄化,对于用户而言就无法在客户端应用以外做更多的事。
网友评论