您的位置:首页 > 编程语言 > PHP开发

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

2016-01-21 15:27 274 查看
Atitit.js跨域解决方案attilax大总结 后台java php c#.net的CORS支持

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

2. Apache 反向代理 推荐1

3. jsonp ,2

4. CORS ,2

5. iframe+post3

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

7. 服务器中转
3

8. Js跨3

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://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/这篇文章里对各种服务器和语言的设置都有详细的介绍,下面我们主要介绍Apache和PHP里的设置方法。

Apache:Apache需要使用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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: