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


    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_srcorderserverpublic_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://blog.csdn.net/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

  • 相关阅读:
    【小梅哥SOPC学习笔记】Altera SOPC嵌入式系统设计教程
    modelsim使用常见问题及解决办法集锦③
    modelsim使用常见问题及解决办法集锦 ②
    KeepAlived双主模式高可用集群
    充分利用nginx的reload功能平滑的上架和更新业务
    nginx日志配置指令详解
    MongoDB 副本集
    MongoDB 备份还原
    MongoDB的搭建、参数
    mongoDB整个文件夹拷贝备份还原的坑
  • 原文地址:https://www.cnblogs.com/attilax/p/5963553.html
Copyright © 2020-2023  润新知