解决 AJAX 跨域方案二(Rewrite)
Posted: November 6, 2006 at 10:48 am | Tags: ajax, apache, class, html, java, javascript, php, 方案, 类, 跨域AJAX的跨域问题,一直是一个另广大程序员深为头痛的问题,虽然解决的方法很多,但是,都不太理想。 
比如PHP里面,可以用file_get_contents类似的函数,将远程页面的HTML代码取回来,再交给AJAX来处理。
但此类通过服务器中转的方法,效率上,实在是不敢恭维,对服务器也会造成比较大的压力。 
最近在看Apache相关的模块介绍的时候,发现了一个好东东,实验了一下,还真的似乎能解决这个问题,就是使用Apache自带的2个Mod,完成代理服务这个艰巨的使命。
这样,完全可以骗过JavaScript,爽啊。 
首先你要启用这2个模块,需要在httpd.conf文件中,去掉这2个模块前面的注释符号。
程序代码
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
然后,需要添加Rewrite规则,比如:
程序代码
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^/proxy/(.*)$ http://$1 [P,L]
</IfModule>
需要日志的话,可以加上:
程序代码
RewriteLogLevel 9
RewriteLog logs/rewrite.log
好了,现在试试http://localhost/proxy/www.163.com看看,嘿嘿! 