AJAX学习笔记——跨域
跨域
一个域名地址的组成
http:// www abc.com : 8080 / scripts/jquery.js
协议 子域名 主域名 端口号 请求资源地址
端口号:一般来说域名端口号是80,如果端口号是80,可以省略
- 当协议、子域名、主域名、端口号中任意一个不相同时,都算作不同域。
- 不同域之间相互请求资源,就算作“跨域”
- 比如: http://www.abc.com/index.html请求http://www.efg.com/service.php
什么是跨域
JavaScript出于安全方面的考虑,不允许跨域调用其他页面的对象。什么是跨域呢,简单地理解就是因为JavaScript同源策略的限制, a.com域名下的js无法操作b.com或是c.a.com域名下的对象。
JavaScript出于安全方面的考虑,不允许跨域调用其他页面的对象。
www.abc.com/index.html调用www.abc.com/service.php (非跨域)
www.abc.com/index.html调用www.efg.com/service.php (跨域)
www.abc.com/index.html调用bbs.abc.com/service.php (跨域)
www.abc.com/index.html调用www.abc.com:81/service.php (跨域)
www.abc.com/index.html调用https://www.abc.com/service.php(跨域) 没有写协议,默认是http协议
主域名与子域名
主域名
abc.com
子域名
www.a bc.com
bbs.abc.com
beijing.bbs.abc.com
haidian.beijing.bbs.abc.com
处理跨域方法一 ——代理
通过在同域名的web服务器端创建一个代理:
北京服务器(域名: www.beijjing.com )
上海服务器(域名: www.shanghai.com )
比如在北京的web服务器的后台
( www.beijing.com/proxy-shanghaiservice.php )来调用上海服务器
( www.shanghai.com/service.php )的服务,然后再把响应结果返回给前端,这样前端调用北京同域名的服务就和调用上海的服务效果相同了。
处理跨域方法二 ——JSONP
jQuery的AJAX方法本身就支持JSONP的处理方式
只能对GET请求起到效果,不能改造POST请求。
注意:JSONP的方式是不支持POST请求的
JSONP可用于解决主流浏览器(GET请求)的跨域数据访问的问题。
在www.aaa.com页面中:
<script>
function jsonp(json){
alert(json["name"]);
}
</script>
//script标签可以向不同的域名提交HTTP请求
//载入另一个域名的jsonp.js
<script src= "http://www.bbb.com/jsonp.js"> </script>
在www.bbb.com页面中:
jsonp({' name':'洪七','age':24));
这种方法是借助script标签节点可以跨域访问的特性
处理跨域方法三 ——XHR2
HTML5提供的XMLHttpRequest Level2已经实现了跨域访问以及其他的一些新功能
IE10以下的版本都不支持
在服务器端做一些小小的改造即可:
//*表示所有域都可以访问,也可以设置特定域名
header('Access-Control-Allow-Origin:*');
header('Access-Control-Allow- Methods:POST,GET');
AJAX学习笔记——跨域的更多相关文章
- jw player学习笔记----跨域请求
需求来源:播放器皮肤文件请求不到,被限制了. 参考官网解决方案: http://www.longtailvideo.com/support/jw-player/28844/crossdomain-fi ...
- 【Java Web开发学习】跨域请求
[Java Web开发学习]跨域请求 ================================================= 1.使用jsonp ===================== ...
- AJax 学习笔记二(onreadystatechange的作用)
AJax 学习笔记二(onreadystatechange的作用) 当发送一个请求后,客户端无法确定什么时候会完成这个请求,所以需要用事件机制来捕获请求的状态XMLHttpRequest对象提供了on ...
- js中ajax如何解决跨域请求
js中ajax如何解决跨域请求,在讲这个问题之前先解释几个名词 1.跨域请求 所有的浏览器都是同源策略,这个策略能保证页面脚本资源和cookie安全 ,浏览器隔离了来自不同源的请求,防上跨域不安全的操 ...
- 06: AJAX全套 & jsonp跨域AJAX
目录: 1.1 AJAX介绍 1.2 jQuery AJAX(第一种) 1.3 原生ajax(第二种) 1.4 iframe“伪”AJAX(第三种) 1.5 jsonp跨域请求 1.6 在tornad ...
- vue.js学习之 跨域请求代理与axios传参
vue.js学习之 跨域请求代理与axios传参 一:跨域请求代理 1:打开config/index.js module.exports{ dev: { } } 在这里面找到proxyTable{}, ...
- ajax请求ashx跨域问题解决办法
ajax请求ashx跨域问题解决办法 https://blog.csdn.net/windowsliusheng/article/details/51583566 翻译windowsliusheng ...
- AJAX学习笔记2:XHR实现跨域资源共享(CORS)以及和JSONP的对比----转载
1 前言: 首先对参考文章作者表示感谢,你们的经验总结给我们这些新手提供了太多资源.本文致力于解决AJAX的CORS问题,我在逻辑上进行了梳理:首先,系统的总结了CORS问题的起源-同源策略:其次,介 ...
- 跨域学习笔记1--跨域调用webapi
在做Web开发中,常常会遇到跨域的问题,到目前为止,已经有非常多的跨域解决方案. 通过自己的研究以及在网上看了一些大神的博客,写了一个Demo 首先新建一个webapi的程序,如下图所示: 由于微软已 ...
随机推荐
- 微信小程序,内容组件中兼容的H5组件
受信任的HTML节点及属性 全局支持class和style属性,不支持id属性. 节点 属性 a abbr address article aside b bdi bdo ...
- 关于Hive中的join和left join的理解
一.join与left join的全称 JOIN是INNER JOIN的简写,LEFT JOIN是LEFT OUTER JOIN的简写. 二.join与left join的应用场景 JOIN一般用于A ...
- circRNA数据库的建立
circRNA数据库的建立 wget http://circbase.org/download/human_hg19_circRNAs_putative_spliced_sequence.fa.g ...
- java实现屏幕截屏功能
最近在项目中遇到这样一个需求,用户生成推广海报想要发送给朋友,但是推广海报是用html网页写的,这时候想要分享给朋友的话只能用户自己手机截图,显然这样的用户体验是不友好的,如果可以给用户一个按钮实现一 ...
- Python15之字符串的格式语句与操作符
一.字符串的format()函数 字符串1.format(赋值) 字符串中必须表明需要格式化的位置 format()函数使用时,花括号中的值表明字符串中 ...
- 别再裸奔了,你的项目代码安全吗,再不加密就out了
在工作中,有时候我们需要部署自己的Python代码 或进行私有化部署时,尤其现在都是通过docker镜像部署,我们并不希望别人能够看到自己的Python源程序. 加密Python源代码的方式,是将.p ...
- PAT(B) 1082 射击比赛(Java)
题目链接:1082 射击比赛 (20 point(s)) 题目描述 本题目给出的射击比赛的规则非常简单,谁打的弹洞距离靶心最近,谁就是冠军:谁差得最远,谁就是菜鸟.本题给出一系列弹洞的平面坐标(x,y ...
- redis有序集合数据类型---sortedset
一.概述 redis有序集合和集合一样,也是string类型元素的集合,且不允许重复的成员. 不同的是每个元素都会关联一个double类型的分数. redis正式通过分数来为集合中的重圆进行从小到大的 ...
- MyBatis整合Spring+SpringMVC搭建一个web项目(SSM框架)
本文讲解如何搭建一个SSM架构的web站点 [工具] IDEA.SqlYog.Maven [简述] 该项目由3个模块组成:dao(数据访问层).service(业务处理层).web(表现层) dao层 ...
- 使用postman mock server
需要写一个小的Java程序,用来调用云平台的接口 由于云平台的接口程序还没有写好,只能用模拟的方式先行开发代码, 用了post来模拟接口程序. 需要模拟的接口如下: ■请求地址 /openapi/ip ...