返回顶部
首页 > 资讯 > 前端开发 > VUE >前端跨域的方法有哪些
  • 914
分享到

前端跨域的方法有哪些

2024-04-02 19:04:59 914人浏览 薄情痞子
摘要

这篇文章主要介绍前端跨域的方法有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!同源策略javascript 的同源策略,是由Netscape提出的一个著名的安全策略,为了阻止A站

这篇文章主要介绍前端跨域的方法有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

同源策略

javascript 的同源策略,是由Netscape提出的一个著名的安全策略,为了阻止A站的js去操作别的网站的数据。你想啊,你现在打开了浏览器,在一个tab窗口中打开了银行网站,在另外一个tab窗口中打开了一个恶意网站,而那个恶意网站挂了一个的专门修改银行信息的JavaScript,当你访问这个恶意网站并且执行它JavaScript时,你的银行页面就会被这个JavaScript修改(比如说获取你的卡号和密码,又或者是转账到黑客的账户上等等),后果会非常严重!而同源策略就为了防止这种事情发生,它规定了A网站下的JS文件只能操作A网站下的数据,不能去操作B网站的数据。

为了方便理解,我们把这个词拆分成同源和策略这2个词吧(原谅我,我就怕你不理解啊)。

所谓同源指的就是指资源是来自同一个源的。如果两个页面拥有相同的协议,端口号,和主机(包括子域名和主域名),那么这两个页面就属于同一个源。

所谓策略指的是可以做什么事情。同一个源下的JS可以操作同一个源下的数据。

举个例子来看看你理解了没有吧,看下面这个链接,协议是Http协议,主机是store.company.com,端口号一般默认的都是80了。然后和下面的这个表中的各个URL进行比较,判断一下哪些是同源的,哪些不是同源的。

URL结果原因
http://store.company.com/dir2/other.html同源 
http://store.company.com/dir/inner/another.html同源 
https://store.company.com/secure.html非同源协议不同
http://store.company.com:81/dir/etc.html非同源端口不同
http://news.company.com/dir/other.html非同源主机不同

什么是跨域

跨域

前端跨域的方法有哪些

跨域的解决方案

方案1-JSONP

JSONP是JSON with padding的简写。JSONP由两部分组成:回调函数和数据。

回调函数是客户端和服务端约定好一个函数名,一般在请求中指定。

数据是传入回调函数中的JSON数据。

JSONP是通过动态的

callback({"name": "michael"});

问题一:JSONP是需要动态创建script标签的,我们需不需要处理这些script元素?怎么处理?

问题二:JSONP请求的时候,服务器发生错误该怎么办,比如服务器崩掉,比如返回了404页面,前端该怎么处理这个错误,难道直接让它抛出么?

答案

JSONP只能实现GET请求,而CORS支持所有类型的HTTP请求

JSONP的兼容性好,不需要XMLHttpRequest的支持

方案2-跨域资源共享CORS

跨域资源共享定义了在必须访问跨域资源的时,浏览器与服务器应该如何沟通。他的原理是使用自定义的 HTTP 头部,让服务器与浏览器进行沟通,主要是通过设置响应头的 Access-Control-Allow-Origin 来达到目的的。

方案3-document.domain

浏览器的同源策略使得不同域的框架是不能进行JS的交互操作的。比如:有一个页面是http://www.examples.com/a.htmls,在这个页面中还有一个http://examples.com/b.htmls,很显然,a.html与b.html是不同域的,所以我们无法通过在页面中书写js代码来获取iframe中的东西,但是,如果我们把这2个页面的document.domain都设置成相同的域名就可以了,需要注意的是,我们只能把document.domain设置成自身或更高一级的父域,且主域名必须相同。

使用条件

document.domain适用于不同子域的框架之间的交互。

方案4-window.name

window对象有个name属性,该属性有一个特征:即在一个窗口的生命周期内,窗口载入的所有页面都是共享一个window.name的,每个页面对window.name都有读写的权限,window.name是持久存在一个窗口载入过的所有页面中的。

方案5-window.postMessage

window.postMessage(message,targetOrigin)方法,可以用来向其他的window对象发送消息,无论这个window对象是属于同一个源还是不同源

以上是“前端跨域的方法有哪些”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注编程网VUE频道!

--结束END--

本文标题: 前端跨域的方法有哪些

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

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

猜你喜欢
  • 前端跨域的方法有哪些
    这篇文章主要介绍前端跨域的方法有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!同源策略JavaScript 的同源策略,是由Netscape提出的一个著名的安全策略,为了阻止A站...
    99+
    2024-04-02
  • java后端进行跨域的方式有哪些
    这篇文章主要讲解了“java后端进行跨域的方式有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“java后端进行跨域的方式有哪些”吧!一、使用@CrossOrigin注解在controll...
    99+
    2023-07-05
  • ajax解决跨域的方法有哪些
    本文小编为大家详细介绍“ajax解决跨域的方法有哪些”,内容详细,步骤清晰,细节处理妥当,希望这篇“ajax解决跨域的方法有哪些”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。 ...
    99+
    2024-04-02
  • AJAX实现跨域的方法有哪些
    这篇文章将为大家详细讲解有关AJAX实现跨域的方法有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。域: 域是WIN2K网络系统的安全性边界。我们知道一个计算机网最基本的单元就是“域”,这一点不是WIN...
    99+
    2023-06-08
  • java跨域请求的方法有哪些
    Java中实现跨域请求有以下几种方法:1. JSONP(JSON with Padding):JSONP是一种使用动态脚本标签(如&...
    99+
    2023-09-06
    java
  • vue跨域请求的方法有哪些
    Vue跨域请求的方法有以下几种:1. 通过配置代理服务器:将API请求发送到代理服务器,再由代理服务器转发到API服务器。可以使用w...
    99+
    2023-08-09
    vue
  • spring设置跨域的方法有哪些
    在Spring中,设置跨域的方法有以下几种: 使用注解@CrossOrigin:@CrossOrigin注解可以直接添加在Con...
    99+
    2024-02-29
    spring
  • 前后端跨域解决方案
    目录 一、为什么会有跨域问题二、解决跨域方案有哪些三、解决跨域最佳方案是什么四、Spring中如何引入CORS 一、为什么会有跨域问题 跨域问题是由于浏览器的同源策略导致的。同源策略是一种安全策略,它限制了一个源的文档或脚本...
    99+
    2023-08-20
    前端 服务器 javascript
  • node后端与Vue前端跨域处理方法详解
    目录node.js后端跨域解决方案前端vue项目前端axios请求node.js后端跨域解决方案 先看后端的入口文件: app.js const express = require(...
    99+
    2024-04-02
  • Web前端的跨域方式是怎样的
    本篇内容主要讲解“Web前端的跨域方式是怎样的”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Web前端的跨域方式是怎样的”吧!什么是跨域 JavaSc...
    99+
    2024-04-02
  • Javascript中跨域方式有哪些
    这篇文章将为大家详细讲解有关Javascript中跨域方式有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1.window.namewindow 对象的name属性是...
    99+
    2024-04-02
  • JavaScript中实现跨域共享的方法有哪些
    本篇文章给大家分享的是有关JavaScript中实现跨域共享的方法有哪些,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。同源策略在客户端编程语言...
    99+
    2024-04-02
  • js跨域请求的方式有哪些
    这篇文章给大家分享的是有关js跨域请求的方式有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。JSONP实现跨域常用的jquery实现跨域调用$.ajax({  &n...
    99+
    2024-04-02
  • springboot解决跨域的方式有哪些
    这篇文章主要介绍“springboot解决跨域的方式有哪些”,在日常操作中,相信很多人在springboot解决跨域的方式有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”springboot解决跨域的方式...
    99+
    2023-06-30
  • 学习HTML5大前端的方法有哪些
    这篇文章主要介绍“学习HTML5大前端的方法有哪些”,在日常操作中,相信很多人在学习HTML5大前端的方法有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”学习HTML5大...
    99+
    2024-04-02
  • springboot解决CORS跨域的方式有哪些
    这篇文章主要介绍“springboot解决CORS跨域的方式有哪些”,在日常操作中,相信很多人在springboot解决CORS跨域的方式有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”springboo...
    99+
    2023-07-02
  • Spring Boot实现跨域的方式有哪些
    这篇文章主要讲解了“Spring Boot实现跨域的方式有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Spring Boot实现跨域的方式有哪些”吧!一、为什么会出...
    99+
    2023-06-30
  • WEB前端跨域的示例分析
    这篇文章主要为大家展示了“WEB前端跨域的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“WEB前端跨域的示例分析”这篇文章吧。 ...
    99+
    2024-04-02
  • WEB前端性能优化的方法有哪些
    这篇文章将为大家详细讲解有关WEB前端性能优化的方法有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。减少请求数量合并如果不进行文件合并,有如下3个隐患1、文件与文件之...
    99+
    2024-04-02
  • 前端JS沙箱的实现方法有哪些
    这篇文章主要介绍了前端JS沙箱的实现方法有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。前言在微前端领域当中,沙箱是很重要的一件事情。像微前端框架single-spa没有...
    99+
    2023-06-20
软考高级职称资格查询
推荐阅读
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作