假如你有一个www.pic.com的图片资源站,想让www.main.com的主网站ajax跨域访问图片站的图片资源,就需要设置跨域.在哪设置呢?在图片站上设置,即www.pic.com这个站的服务器端设置,允许别人的域名直接访问我的图片.
当然,如果你要跨域访问的站是别人的服务器,那就没办法了.因为他不允许你用js跨域访问,你只能通过更安全的php或curl等其它方式访问才行.
如果www.pic.com图片站是apache的服务器,
则先要修改www.pic.com图片服务器的httpd.conf文件.即把下面一句的代码前面的#去掉.
LoadModule headers_module modules/mod_headers.so
然后,在www.pic.com网站的根目录中建立 .htaccess配置文件,里面增加跨域代码,如果允许所有站都可以跨域访问.则这样写,允许所有站访问可能不安全(注意,*前不得加冒号)
<IfModule mod_headers.c>
Header add Access-Control-Allow-Origin *
</IfModule>
或只允许个别网站访问,则这样,后面可以冒号,也可以不加
<IfModule mod_headers.c>
Header add Access-Control-Allow-Origin: http://c.com
</IfModule>
如果允许二个或以上的特定域名访问,则,(注意,紧挨着域名的前面不要加http,因为前面已经正则匹配了.再加就重复了)
<IfModule mod_headers.c>
SetEnvIf Origin "http(s)?://(www.)?(game.5.cn|game.7.cn)$" AccessControlAllowOrigin=$0$1
Header add Access-Control-Allow-Origin %{AccessControlAllowOrigin}e env=AccessControlAllowOrigin
</IfModule>
跨域测试html代码.需要放在主站根目录中,进行测试
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<script src="http://apps.bdimg.com/libs/jquery/1.6.4/jquery.min.js" language="javascript" type="text/javascript"></script>
</head>
<body>
<script>
//注意,本html文件需要放在你的主站上,用他来跨域调用图片站
$.get("http://你的图片服务器的域名.com/2.txt", function(data){
//注意txt内容文件
alert("Data Loaded: " + data);//弹出内容说明可以跨域了
});
</script>
</body>
本文详细介绍如何在Apache服务器上配置跨域资源共享(CORS),使主网站能够通过AJAX跨域访问图片资源站的图片。文章提供了具体步骤,包括修改httpd.conf文件,创建.htaccess配置文件,并添加跨域代码,同时提供了测试代码。
411

被折叠的 条评论
为什么被折叠?



