105-跨域与解决跨域问题

前面一篇文章 前端萌新:103-网络请求-AJAX大致写了AJAX请求,现在出现了一个问题-跨域。那么什么是跨域?我们如何解决跨域问题?

主要内容:

什么是跨域?

跨域的三种主要解决方案

什么是跨域?

当我们访问一个服务器时,页面中有用AJAX请求的网址,该网址上的地址不属于这个服务器的地址(IP,协议,端口号只要有一种不同,即不属于这个服务器),浏览器加载该网址资源,浏览器处于安全,会拒绝接收此资源,浏览器报出的问题就是跨域问题。

图一 浏览器报错-跨域

1,出现跨域要满足两个条件:

非同源、AJAX请求

2,什么是同源策略?

这是浏览器的一种安全策略:指两个网址的协议,IP与port三者都相同,三者中有一个不同就是非同源。

例:

pathname不参与同源判断(pathname不同)-同源

协议不一样-异源

域名不同-异源

域名相同(IP:port)域名与IP:port解析后相同-同源

跨域的三种主要解决方案(自行解决的,后续会有egg框架)

1,CORS

原理:

在实际项目中,我们需要使用AJAX跨域请求其他服务器的资源,即服务器之间的资源共享,这时就需要解决跨域问题,CORS就是其中一种方式。

我们在后端发送数据包的头部设置这个资源被跨域请求时res.setHeader()跨域资源共享白名单:

用法:

在访问的浏览器的应答数据包头部设置某些计算机可访问

res.setHeader("Access-Control-Allow-Origin","*")表示任何计算机都可访问。

2,JSONP

原理:

利用script标签的src属性也可做网络请求,并且请求的资源没有跨域限制,但是请求过来的资源就会运行。我们可以将想得到的数据用函数参数的形式装起来,然后用JSON数据传给前端,前端就会运行这个预先设置的函数,以此操作得到的参数(网络资源数据)。

用法:

3,Proxy

原理:

A在B服务器下运行的页面,页面中有其他网站C的AJAX网络请求,就会出现跨域问题。Proxy就是A访问B服务器的另一个接口,这个接口去去做网络请求(用其他网络请求工具如request),B服务器得到的数据返回给A。

代做工资流水公司盐城办银行流水修改绵阳银行流水账费用成都做企业对公流水天津办理背调流水绍兴工资代付流水查询滁州银行流水修改制作漳州打工资代付流水长春车贷工资流水 查询广州代做企业对私流水铜陵入职流水图片南宁代开贷款流水北京车贷工资流水 多少钱天津房贷流水制作大连银行流水电子版公司菏泽自存银行流水报价上饶公司流水制作遵义个人银行流水开具惠州薪资流水多少钱福州查银行流水账常州代开流水账单潮州签证银行流水 公司南京工作收入证明打印银川打印贷款流水江门查薪资流水单南昌工资流水开具淄博查车贷工资流水武汉银行流水PS模板嘉兴银行流水账单公司兰州办薪资流水单洛阳公司银行流水香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声卫健委通报少年有偿捐血浆16次猝死汪小菲曝离婚始末何赛飞追着代拍打雅江山火三名扑火人员牺牲系谣言男子被猫抓伤后确诊“猫抓病”周杰伦一审败诉网易中国拥有亿元资产的家庭达13.3万户315晚会后胖东来又人满为患了高校汽车撞人致3死16伤 司机系学生张家界的山上“长”满了韩国人?张立群任西安交通大学校长手机成瘾是影响睡眠质量重要因素网友洛杉矶偶遇贾玲“重生之我在北大当嫡校长”单亲妈妈陷入热恋 14岁儿子报警倪萍分享减重40斤方法杨倩无缘巴黎奥运考生莫言也上北大硕士复试名单了许家印被限制高消费奥巴马现身唐宁街 黑色着装引猜测专访95后高颜值猪保姆男孩8年未见母亲被告知被遗忘七年后宇文玥被薅头发捞上岸郑州一火锅店爆改成麻辣烫店西双版纳热带植物园回应蜉蝣大爆发沉迷短剧的人就像掉进了杀猪盘当地回应沈阳致3死车祸车主疑毒驾开除党籍5年后 原水城县长再被查凯特王妃现身!外出购物视频曝光初中生遭15人围殴自卫刺伤3人判无罪事业单位女子向同事水杯投不明物质男子被流浪猫绊倒 投喂者赔24万外国人感慨凌晨的中国很安全路边卖淀粉肠阿姨主动出示声明书胖东来员工每周单休无小长假王树国卸任西安交大校长 师生送别小米汽车超级工厂正式揭幕黑马情侣提车了妈妈回应孩子在校撞护栏坠楼校方回应护栏损坏小学生课间坠楼房客欠租失踪 房东直发愁专家建议不必谈骨泥色变老人退休金被冒领16年 金额超20万西藏招商引资投资者子女可当地高考特朗普无法缴纳4.54亿美元罚金浙江一高校内汽车冲撞行人 多人受伤

代做工资流水公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化