iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > html >Web前端的跨域方式是怎样的
  • 756
分享到

Web前端的跨域方式是怎样的

2024-04-02 19:04:59 756人浏览 安东尼
摘要

本篇内容主要讲解“web前端的跨域方式是怎样的”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“WEB前端的跨域方式是怎样的”吧!什么是跨域 javasc

本篇内容主要讲解“web前端的跨域方式是怎样的”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习WEB前端的跨域方式是怎样的”吧!

什么是跨域 

Web前端的跨域方式是怎样的

javascript出于安全方面的考虑,不允许跨域调用其他页面的对象。那什么是跨域呢,简单地理解就是因为JavaScript同源策略的限制,a.com域名下的js无法操作b.com或是c.a.com域名下的对象。

当协议、子域名、主域名、端口号中任意一个不相同时,都算作不同域。不同域之间相互请求资源,就算作“跨域”。

有一点必须要注意:跨域并不是请求发不出去,请求能发出去,服务端能收到请求并正常返回结果,只是结果被浏览器拦截了。之所以会跨域,是因为受到了同源策略的限制,同源策略要求源相同才能正常进行通信,即协议、域名、端口号都完全一致。

大家可以参照下图,有助于深入理解跨域。

Web前端的跨域方式是怎样的

特别说明两点:

***:如果是协议和端口造成的跨域问题“前台”是无能为力的。

第二:在跨域问题上,域仅仅是通过“URL的首部”来识别而不会根据域名对应的IP地址是否相同来判断。“URL的首部”可以理解为“协议, 域名和端口必须匹配”。

什么是同源策略及其限制

同源策略限制从一个源加载的文档或脚本如何与来自另一个源的资源进行交互。这是一个用于隔离潜在恶意文件的关键的安全机制。它的存在可以保护用户隐私信息,防止身份伪造等(读取Cookie)。

同源策略限制内容有:

Cookie、LocalStorage、IndexedDB 等存储性内容

DOM 节点

ajax 请求不能发送

但是有三个标签是允许跨域加载资源:

Web前端的跨域方式是怎样的

接下来我们讨论下有哪些处理跨域的方法。但所有的跨域都必须经过信息提供方的允许。如果未经允许即可获取,那是浏览器同源策略出现漏洞。

处理跨域方法一——JSONP

1.JSONP原理

利用<script>元素的这个开放策略,网页可以得到从其他来源动态产生的 JSON 数据。JSONP请求一定需要对方的服务器做支持才可以。

2.JSONP和AJAX对比

JSONP和AJAX相同,都是客户端向服务器端发送请求,从服务器端获取数据的方式。但AJAX属于同源策略,JSONP属于非同源策略(跨域请求)

3.JSONP优缺点

JSONP优点是兼容性好,可用于解决主流浏览器的跨域数据访问的问题。缺点是仅支持get方法具有局限性。

4.JSONP的流程(以第三方api地址为例,不必考虑后台程序)

声明一个回调函数,其函数名(如fn)当做参数值,要传递给跨域请求数据的服务器,函数形参为要获取目标数据(服务器返回的data)。

创建一个<script>标签,把那个跨域的API数据接口地址,赋值给script的src,还要在这个地址中向服务器传递该函数名(可以通过问号传参:?callback=fn)。

服务器接收到请求后,需要进行特殊的处理:把传递进来的函数名和它需要给你的数据拼接成一个字符串,例如:传递进去的函数名是fn,它准备好的数据是fn([{"name":"jianshu"}])。

***服务器把准备的数据通过Http协议返回给客户端,客户端再调用执行之前声明的回调函数(fn),对返回的数据进行操作。

Web前端的跨域方式是怎样的

其中 fn 是客户端注册的回调的函数,目的获取跨域服务器上的json数据后,对数据进行在处理。

***服务器返回给客户端数据的格式为:

Web前端的跨域方式是怎样的

5.Jquery的jsonp形式

JSONP都是GET和异步请求的,不存在其他的请求方式和同步请求,且jQuery默认就会给JSONP的请求清除缓存

Web前端的跨域方式是怎样的

处理跨域方法二&mdash;&mdash;CORS

1.CORS原理

整个CORS通信过程,都是浏览器自动完成,不需要用户参与。对于开发者来说,CORS通信与同源的AJAX通信没有差别,代码完全一样。浏览器一旦发现AJAX请求跨源,就会自动添加一些附加的头信息,有时还会多出一次附加的请求,但用户不会有感觉。因此,实现CORS通信的关键是服务器。只要服务器实现了CORS接口,就可以跨源通信。

2.CORS优缺点

CORS要求浏览器(>IE10)和服务器的同时支持,是跨域的根本解决方法,由浏览器自动完成。

优点在于功能更加强大支持各种HTTP Method,缺点是兼容性不如JSONP。

只需要在服务器端做一些小小的改造即可:

Web前端的跨域方式是怎样的

例如:网站http://localhost:{{63342:0}}/ 页面要请求http://localhost:3000/users/userlist 页面,userlist页面返回json字符串格{name: 'Mr.Cao', gender: 'male', career: 'IT Education'}

Web前端的跨域方式是怎样的

在响应头上添加Access-Control-Allow-Origin属性,指定同源策略的地址。同源策略默认地址是网页的本身。只要浏览器检测到响应头带上了CORS,并且允许的源包括了本网站,那么就不会拦截请求响应。

Web前端的跨域方式是怎样的

处理跨域方法三&mdash;&mdash;websocket

WebSocketHTML5的一个持久化的协议,它实现了浏览器与服务器的全双工通信,同时也是跨域的一种解决方案。WebSocket和HTTP都是应用层协议,都基于 tcp 协议。但是 WebSocket 是一种双向通信协议,在建立连接之后,WebSocket 的 server 与 client 都能主动向对方发送或接收数据。同时,WebSocket 在建立连接时需要借助 HTTP 协议,连接建立好了之后 client 与 server 之间的双向通信就与 HTTP 无关了。

原生WebSocket API使用起来不太方便,我们使用Socket.io,它很好地封装了webSocket接口,提供了更简单、灵活的接口,也对不支持webSocket的浏览器提供了向下兼容。

Web前端的跨域方式是怎样的

Web前端的跨域方式是怎样的

处理跨域方法四&mdash;&mdash;postMessage

如果两个网页不同源,就无法拿到对方的DOM。典型的例子是iframe窗口和window.open方法打开的窗口,它们与父窗口无法通信。html5为了解决这个问题,引入了一个全新的API:跨文档通信 API(Cross-document messaging)。这个API为window对象新增了一个window.postMessage方法,允许跨窗口通信,不论这两个窗口是否同源。postMessage方法的***个参数是具体的信息内容,第二个参数是接收消息的窗口的源(origin),即"协议 + 域名 + 端口"。也可以设为*,表示不限制域名,向所有窗口发送。

接下来我们看个例子:

Web前端的跨域方式是怎样的

Web前端的跨域方式是怎样的

到此,相信大家对“Web前端的跨域方式是怎样的”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

--结束END--

本文标题: Web前端的跨域方式是怎样的

本文链接: https://www.lsjlt.com/news/85714.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Web前端的跨域方式是怎样的
    本篇内容主要讲解“Web前端的跨域方式是怎样的”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Web前端的跨域方式是怎样的”吧!什么是跨域 JavaSc...
    99+
    2024-04-02
  • web前端跨域是什么
    这篇文章主要介绍“web前端跨域是什么”,在日常操作中,相信很多人在web前端跨域是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”web前端跨域是什么”的疑惑有所帮助!接...
    99+
    2024-04-02
  • WEB前端跨域的示例分析
    这篇文章主要为大家展示了“WEB前端跨域的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“WEB前端跨域的示例分析”这篇文章吧。 ...
    99+
    2024-04-02
  • web前端跨域问题怎么解决
    本文小编为大家详细介绍“web前端跨域问题怎么解决”,内容详细,步骤清晰,细节处理妥当,希望这篇“web前端跨域问题怎么解决”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。为什么跨域?为什么会出现跨域问题呢?那就不...
    99+
    2023-06-29
  • 前端跨域的方法有哪些
    这篇文章主要介绍前端跨域的方法有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!同源策略JavaScript 的同源策略,是由Netscape提出的一个著名的安全策略,为了阻止A站...
    99+
    2024-04-02
  • web前端中js reduce方法的使用是怎样的
    web前端中js reduce方法的使用是怎样的,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。web前端教程分享js reduce方法使用教程,reduce() 方法接收一个函...
    99+
    2023-06-04
  • web前端实时通信的方式是什么
    这篇“web前端实时通信的方式是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“web前端实时通信的方式是什么”文章吧。1...
    99+
    2023-06-30
  • js前端解决跨域的八种实现方案
    目录一、jsonp跨域 二、document.domain + iframe跨域 三、location.hash + iframe跨域 四、window.name + iframe跨...
    99+
    2024-04-02
  • web前后端交互方式是什么
    这篇文章主要讲解了“web前后端交互方式是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“web前后端交互方式是什么”吧!  正如我们所知,一个完整的IT项目是由多个不同岗位共同完成的,包...
    99+
    2023-06-27
  • java后端进行跨域的方式有哪些
    这篇文章主要讲解了“java后端进行跨域的方式有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“java后端进行跨域的方式有哪些”吧!一、使用@CrossOrigin注解在controll...
    99+
    2023-07-05
  • web前端工程师正确的学习思路是怎样的
    web前端工程师正确的学习思路是怎样的,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。对于零基础的学员来说:初接触一门技术,想要...
    99+
    2024-04-02
  • 前端一站式异常监控的捕获方案是怎样的
    这期内容当中小编将会给大家带来有关前端一站式异常监控的捕获方案是怎样的,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。一、前端异常监控的重要性软件异常监控常常直接关联到软件...
    99+
    2024-04-02
  • 分析web前端的网络请求方式
    本篇内容介绍了“分析web前端的网络请求方式”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! 一、...
    99+
    2024-04-02
  • Web前端开发css基础样式的示例分析
    小编给大家分享一下Web前端开发css基础样式的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!颜色和单位的使用 颜色用颜...
    99+
    2024-04-02
  • Java跨域问题的几种后端解决方式
    文章目录 Java跨域问题解决方式一、什么是跨域二、常见跨域举例三、Java后端解决方式1、实现 WebMvcConfigurer2、实现 HandlerInterceptor3、使用Filt...
    99+
    2023-09-29
    java 开发语言 servlet intellij-idea gateway
  • java后端进行跨域的几种方式小结
    目录一、使用@CrossOrigin注解二、重写addCorsMappings方法三、添加CORS过滤器一、使用@CrossOrigin注解 在controller类上加上@Cros...
    99+
    2023-03-19
    java后端跨域 java 跨域
  • Vue+SpringBoot前后端分离中的跨域问题
    在前后端分离开发中,需要前端调用后端api并进行内容显示,如果前后端开发都在一台主机上,则会由于浏览器的同源策略限制,出现跨域问题(协议、域名、端口号不同等),导致不能正常调用api...
    99+
    2024-04-02
  • 有哪些Web前端开发找错的方式
    这篇文章主要讲解了“有哪些Web前端开发找错的方式”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“有哪些Web前端开发找错的方式”吧!WEB开发主要是两个交互(B/S数据)浏览器:1包含htm...
    99+
    2023-06-08
  • js实现前端跨域postMessage的具体使用
    目录postMessage的使用方法发送消息接收消息在前端开发中,跨域是一个常见的问题,由于同源策略的限制,浏览器不允许在不同源的页面之间直接进行通信。解决跨域问题有多种方式,其中一...
    99+
    2023-05-17
    js postMessage js 前端跨域
  • gateway网关与前端请求跨域问题的解决方案
    gateway网关与前端请求的跨域问题 最近因项目需要,引入了gateway网关。可是发现将前端请求的端口指向网关后,用postman发送请求是正常的,用浏览器页面点击请求会出现跨域...
    99+
    2024-04-02
软考高级职称资格查询
推荐阅读
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作