新手学跨域
来源:互联网 发布:知乎比天涯好吗 编辑:程序博客网 时间:2024/06/05 23:44
描述
协议
(http, https, ftp etc.) 、域名
(foo.com, bar.com, img.foo.com) 、端口
(80, 8080, ...) 其中有一个不一致即形成跨域。跨域是一种解决浏览器同源策略限制的手段,应根据场景选用合适的跨域方法,而不是在一种场景下随便哪个都可以。
表现
打开控制台,如果出现类似下面的错误信息或者带有cross-origin
的错误信息,说明遇到了浏览器的 同源策略
限制。
思路
利用具有跨域能力的html标签:<img>
、<script>
、<iframe>
和XMLHttpRequest
支持的方法
注意:JS无法解决协议或端口造成的跨域问题
跨域的方法
- jsonp
- iframe
● document.domain
● window.name
● location.hash
● navigator (IE6 bug)
● postMessage - CORS
● XMLHttpRequest (modern browser)
● XDomainRequest (IE8+) - 图像Ping (略)
- flash (略)
准备工作
学习跨域前,先做下准备工作—在本地模拟跨域条件,直接用localhost
127.0.0.1
也行,不过不太方便,并且不能模拟子域。
我是用 WampServer
搭建的本地服务器,安装在E:\wamp
,www目录在E:\htdocs
,接下来要修改httpd.conf
和httpd-vhosts.conf
文件,根据我的安装路径和版本是在E:\wamp\bin\apache\Apache2.2.17\conf\
和 子目录extra
下。
httpd.conf
215 <Directory "E:/wamp/www/"> 这里我修改了web文件的位置 E:/htdocs467 #Include conf/extra/httpd-vhosts.conf 去掉第一个#
httpd-vhosts.conf
删除26行以后的代码 添加
# localhost<VirtualHost *:80> DocumentRoot "E:/htdocs" ServerName localhost</VirtualHost># foo.com<VirtualHost *:80> ServerName foo.com DocumentRoot "E:/htdocs/"</VirtualHost># www.foo.com<VirtualHost *:80> ServerName www.foo.com DocumentRoot "E:/htdocs/img/"</VirtualHost># img.foo.com<VirtualHost *:80> ServerName img.foo.com DocumentRoot "E:/htdocs/img/"</VirtualHost>
最后修改host C:\Windows\System32\drivers\etc\hosts
127.0.0.1 localhost127.0.0.1 foo.com127.0.0.1 www.foo.com127.0.0.1 img.foo.com127.0.0.1 bar.com
在 E:\htdocs
目录下新建index.html文件,新建img目录并在里面新建1.txt,重启wamp,试着用foo.com
,bar.com
访问index.html文件,img.foo.com/1.txt
访问1.txt文件,如果一切正常准备工作就做好了,如果还不行检查以上步骤或百度一下。
其他说明
图像Ping http://www.w3cmm.com/ajax/image-ping.html
flash http://www.adobe.com/cn/devnet/adobe-media-server/articles/cross-domain-xml-for-streaming.html
内容仅代表个人的理解,可能有不准确的地方,如有不妥请自行斟酌
- 新手学跨域
- 新手学跨域
- 新手学跨域之CORS
- 新手学跨域之iframe
- 新手学跨域之Jsonp
- 新手学跨域之Jsonp
- 新手
- 新手
- 新手
- 新手
- 新手!
- 新手
- 新手
- 新手
- 新手
- 新手
- 新手
- 新手
- 单链表逆序(c实现)
- 最近的一些小结
- 数据结构—迷宫(栈实现版)
- 小试Python多线程
- UITextField边框颜色
- 新手学跨域
- 以太网网络变压器和中心抽头的接法
- php扩展xdebug基本使用
- C#6.0的语法<一>
- bzoj [HAOI2008] 糖果传递 贪心
- 安装win8后找不到Ubuntu启动项的解决方法
- mysql禁用autocommit
- 新手学跨域之Jsonp
- 新浪云存储(SCS) SDK for Node.js使用方法,node粉丝这次有福气了!