码迷,mamicode.com
首页 > 编程语言 > 详细

Atitit.js跨域解决方案attilax大总结 后台java php c#.net的CORS支持

时间:2016-01-21 15:48:23      阅读:265      评论:0      收藏:0      [点我收藏+]

标签:

Atitit.js跨域解决方案attilax大总结 后台java php c#.netCORS支持

 

1设置 document.domain为一致  推荐1

2Apache 反向代理 推荐1

3jsonp ,2

4CORS ,2

5iframe+post3

6回调解决方案>>服务端推送dwr 反向ajax3

7服务器中转 3

8Js3

9从所有的浏览器都支持来看,CORS将成为未来跨域访问的标准解决方案3

10. 参考4

 

 

1. 设置 document.domain为一致  推荐

2. Apache 反向代理 推荐

 

   listen 80

   NameVirtualHost *:80

 <VirtualHost *:80>

 #DirectoryIndex  index.php index.Html index.html 

   

  # DocumentRoot  D:\home_src\orderserver\public_html

  

 #   ServerName weixin.erdian.net  

    ProxyPreserveHost On  

    ProxyRequests Off  

    ProxyPass /ati http://localhost:8080/ati  

    ProxyPassReverse /ati http://localhost:8080/ati

 ProxyPass /ecs http://localhost:8081/ecs  

    ProxyPassReverse /ecs http://localhost:8081/ecs  

   

 

 

   </VirtualHost>

 

3. jsonp , .

 

作者:: 绰号:老哇的爪子 ( 全名::Attilax Akbar Al Rapanui 阿提拉克斯 阿克巴 阿尔 拉帕努伊 ) 汉字名:艾龙,  EMAIL:1466519819@qq.com

转载请注明来源: http://www.cnblogs.com/attilax/

 

4. CORS ,

如果我们要使用CORS,相关Ajax代码可能如下所示:

[html] view plain copy

1. var xhr = new XMLHttpRequest();  

2. xhr.open("GET", "http://blog.csdn.net/hfahe", true);  

3. xhr.send();  

        请注意,代码与之前的区别就在于相对路径换成了其他域的绝对路径,也就是你要跨域访问的接口地址。

     2  服务器

        服务器端对于CORS的支持,主要就是通过设置Access-Control-Allow-Origin来进行的。如果浏览器检测到相应的设置,就可以允许Ajax进行跨域的访问。

        HTTP 头的设置方法有很多,http://enable-cors.org/这篇文章里对各种服务器和语言的设置都有详细的介绍,下面我们主要介绍ApachePHP里的设置方法。

        ApacheApache需要使用mod_headers模块来激活HTTP头的设置,它默认是激活的。你只需要在Apache配置文件的<Directory>, <Location>, <Files><VirtualHost>的配置里加入以下内容即可:

[html] view plain copy

1. Header set Access-Control-Allow-Origin *  

        PHP:只需要使用如下的代码设置即可。

[html] view plain copy

1. <?php  

2.  header("Access-Control-Allow-Origin:*");  

        以上的配置的含义是允许任何域发起的请求都可以获取当前服务器的数据。当然,这样有很大的危险性,恶意站点可能通过XSS攻击我们的服务器。所以我们应该尽量有针对性的对限制安全的来源,例如下面的设置使得只有http://blog.csdn.net这个域才能跨域访问服务器的API

[html] view plain copy

1. Access-Control-Allow-Origin: http://blog.csdn.net  

 

5.  iframe+post

 

6. 回调解决方案>>服务端推送dwr 反向ajax

 

加轮询

7. 服务器中转

 

8. Js

document.write(window.location.host);//localhost:8080

 

9. 从所有的浏览器都支持来看,CORS将成为未来跨域访问的标准解决方案

 

使用案例

        目前国外支持CORS的平台有很多,例如:

技术分享

        Google APIClient Library for JS

        Google CloudStorage

技术分享

        Face.com API

未来

        从所有的浏览器都支持来看,CORS将成为未来跨域访问的标准解决方案。无论是自己服务器间的跨域访问,还是开放平台为第三方提供API,都将采用这种统一的解决方案,因为它简单、高效,受到所有主流浏览器的支持。它非常重要,也会让我们的网络变得更加开放。

 

10. 参考

Atitit. Js 跨域回调解决方案的原理and实现最佳实践

HTML5安全:CORS(跨域资源共享)简介 蒋宇捷的专栏 博客频道 - CSDN.NET.htm

 

Atitit.js跨域解决方案attilax大总结 后台java php c#.net的CORS支持

标签:

原文地址:http://www.cnblogs.com/attilax/p/5148439.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!