前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >web是如何实现跨域的

web是如何实现跨域的

作者头像
武军超
发布2019-07-02 18:45:20
6620
发布2019-07-02 18:45:20
举报
文章被收录于专栏:武军超python专栏

跨域是指从一个域名的网页去请求另一个域名的资源。比如从www.baidu.com 页面去请求 www.google.com 的资源。跨域的严格一点的定义是:只要 协议,域名,端口有任何一个的不同,就被当作是跨域 浏览器有同源策略本身是禁止跨域访问的 为什么浏览器要限制跨域访问呢?原因就是安全问题:如果一个网页可以随意地访问另外一个网站的资源,那么就有可能在客户完全不知情的情况下出现cookie泄露的安全问题 为什么要跨域: 既然有安全问题,那为什么又要跨域呢? 有时公司内部有多个不同的子域,比如一个是location.company.com ,而应用是放在app.company.com , 这时想从 app.company.com去访问 location.company.com 的资源就属于跨域

怎么实现跨域: 由于浏览器一般不对script,img等进行跨域限制,所以我们有机会通过script的方式来实现跨域访问。 简单来说,就是你请求的文件,只要含有“src”,“href”这些属性,你就能在其他服务器上,请求你所需要的文件,然后在自己的服务器上运行,就实现了跨域(跨协议,跨域名,跨端口)。 凡是拥有scr这个属性的标签都可以跨域例如<script><img><iframe>,herf属性的有<a> 具体做法: 1. 基于script标签实现跨域,在头部写请求的资源地址: <script type="text/javascript" src="http://web.cn/js/message.js"></script> 返回的是json数据 2. 基于jQuery发送Ajax,在Ajax里面设置datatype为jsonp(服务器返回的数据格式),则可以进行跨域访问,不过Ajax中type必须是get,因为jsonp只支持get 3.还有ifram请求 基于iframe实现的跨域要求两个域具有aa.xx.com,bb.xx.com 这种特点,例如:http://a.study.cn/a.html 请求 http://b.study.cn/b.html 也就是两个页面必须属于一个基础域(例如都是xxx.com),使用同一协议和同一端口,这样在两个页面中同时添加document.domain,就可以实现父页面调用子页面的函数

4.利用 CORS (Cross-Origin Resource Sharing)跨域资源共享实现跨域, CORS 支持所有类型的 HTTP 请求;使用CORS,开发者可以使用普通的XMLHttpRequest发起请求和获得数据,比起JSONP有更好的错误处理;绝大多数现代浏览器都已经支持了CORS;

CORS:https://blog.csdn.net/Odyssues_lee/article/details/80836839

实现跨域的话服务端需要做什么: 服务端要检查访问的请求参数,如果没有callback,则可以按照之前的流程走;如果带着callback参数,则需要将返回的结果包装在callback里面。

1、jsonp跨域 JSONP(JSON with Padding:填充式JSON),应用JSON的一种新方法, JSON、JSONP的区别:  1、JSON返回的是一串数据、JSONP返回的是脚本代码(包含一个函数调用)  2、JSONP 只支持get请求、不支持post请求  (类似往页面添加一个script标签,通过src属性去触发对指定地址的请求,故只能是Get请求)

参考链接: https://blog.csdn.net/echizao1839/article/details/80815155 https://blog.csdn.net/tjcjava/article/details/76468225 https://blog.csdn.net/qq_15037231/article/details/80364647

https://www.jianshu.com/p/79daa0d45aac

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018年11月24日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档