网站跨域访问解决方法

来源:互联网 发布:sql查2个字段重复数据 编辑:程序博客网 时间:2024/06/06 00:08

      我们网站设计有时候需要根据不同的业务需要设定分布式访问,并绑定不同的域名。这样做有诸多好处,可以分离出不同的业务,同时可以进行分布式部署。但这样就面临跨域访问问题,各大浏览器处于安全处于安全考虑禁止进行跨域访问。不过在html中有几个标签是不受跨域访问限制,script、iframe、link。解决跨域的问题目前有两种方法。

  •  使用jsonp
              通过传递callback函数名,返回callback函数调用语句,实现跨域访问。
  • 使用cors
       /* 是否允许跨域访问 */response.setHeader("Access-Control-Allow-Origin", "http://www.google.com");
  • swf实现跨域访问
             需要在被访问站点的根路径上配置访问策略。
<cross-domain-policy>      <allow-access-from domain="*.google.com"/> </cross-domain-policy>

  • 跨源资源共享替代方案 

           JSONP方案,参考:http://en.wikipedia.org/wiki/JSONP#JSONP

           使用Web代理,参考:http://developer.yahoo.com/javascript/howto-proxy.html

           使用IFRAME,参考:http://msdn.microsoft.com/en-us/library/bb735305.aspx 和http://blog.joycode.com/saucer/archive/2006/10/03/84572.aspx

  • 参考资料
          http://www.nczonline.net/blog/2010/05/25/cross-domain-ajax-with-cross-origin-resource-sharing/
          http://en.wikipedia.org/wiki/JSONP#JSONP
          http://www.w3.org/TR/cors/

          http://fangyuncn.blog.163.com/blog/static/174231499201071755813337/


/*设定同一个域名访问*/(function(){try{document.domain = 'ps007.com';}catch(e){alert(e);}})();try{    /*支持IE跨域访问*/    jQuery.support.cors = true;}catch(e){    alert(e);}



0 0
原创粉丝点击