跨域的五种解决方案详解

这篇具有很好参考价值的文章主要介绍了跨域的五种解决方案详解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.跨域解决方案一:cors技术

CORS :全称cross origin resource share (资源共享)

工作原理: 服务器 在返回响应报文的时候,在响应头中 设置一个允许的header

res.setHeader(‘Access-Control-Allow-Origin’, ‘*’)

CORS :全称cross origin resource share (资源共享)

服务器 在返回响应报文的时候,在响应头中 设置一个允许的header

//服务器设置CORS,允许浏览器跨域
res.setHeader('Access-Control-Allow-Origin', '*')

跨域解决方案,中间件,node.js,http

2-express使用中间件cors

官网传送门:https://www.expressjs.com.cn/resources/middleware.html

xpress有一个自带的中间件cors,它的作用是自动给每一个res设置默认请求头

这样就不用我们自己每一个接口都要设置一次了

跨域解决方案,中间件,node.js,http
仅需两步即可潇洒搞定!

//1.下包 
$ npm install cors
//2配置中间件 
var cors = require('cors') 
app.use(cors()

cors中间件底层原理如下

app.use((req, res, next) => {//任何请求都会进入这个use中间件 
res.setHeader('Access-Control-Allow-Origin', '*')//设置响应头 
next()//执行下一个中间件  })

2.跨域解决方案二:原生jsonp

通过动态创建script标签,通过script标签的src,向一个不同源的接口发送一个get请求

跨域解决方案,中间件,node.js,http
src属性发送请求时,在参数中额外携带一个callback的参数,参数值是一个在页面中预先定于好的函数名

callback属性值:预先定义的函数名,这个函数必须要在script标签之前定义

服务器接收到请求之后,获取callback的参数值

服务器将要响应的数据拼接成 函数调用格式,通过传参的方式将响应数据返回给浏览器

跨域解决方案,中间件,node.js,http

注意:JSONP只支持get请求,不支持post

3.跨域解决方案三: jQuery中的jsonp

只需要一行代码

dataType:'jsonp'

底层原理与原生一致,设置dataType为jsonp,jq会自动动态帮我们创建一个script标签,将url放到src属性中

细节注意点:jq使用jsonp不需要自己设置callback,jq会自动帮我们发送callback参数,参数值就是jq的success回调函数

跨域解决方案,中间件,node.js,http
4.跨域解决方案四:谷歌浏览器设置跨域

跨域是浏览器的一个安全限制,我们可以通过修改一些设置,让被设置的浏览器没有这个同源的限制,自然可以实现跨域

5.区别

最后的最后总结一下SONP与CORS的区别

1.CORS:

服务器返回响应头,前端无需任何处理

简单快捷,支持所有请求方式

2.JSONP

浏览器:自定义响应回调函数,使用script标签的src请求

利用浏览器的src属性没有跨域这一限制特点

服务器:接收callback参数,返回函数调用

处理复杂,并且只支持get请求

原因:get请求参数直接在url后面拼接,而post请求参数是放在请求体中

未完待续…文章来源地址https://www.toymoban.com/news/detail-571191.html

到了这里,关于跨域的五种解决方案详解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Vue学习笔记】跨域的六种解决方案

    @TOC 跨域问题指的是在浏览器端,当一个网页的脚本(如JavaScript)向另一个域名的网站发起请求时,如果两个网站的域名不一致,就会出现跨域问题。由于浏览器的同源策略(Same Origin Policy),默认情况下,脚本只能访问同一个域名下的资源,不能访问其他域名下的资源。

    2024年02月10日
    浏览(53)
  • 玩游戏缺失“d3d11.dll丢失“的问题的五种解决方案

    在我日常的计算机维护工作中,经常遇到一些用户报告他们遇到了\\\"d3d11.dll丢失\\\"的问题。这是一个常见的Windows系统错误,通常会导致程序无法正常运行。在这篇文章中,我将分享我找到的五种有效的解决方法,以帮助这些用户解决这个问题。 方法一:使用dll修复工具(亲测有

    2024年02月05日
    浏览(82)
  • 前端跨域解决方案之CORS详解

    CORS 是一个 W3C 标准,全称是“跨源资源共享”( Cross-origin resource sharing ),或者通俗地 称为“ 跨域资源共享 ”。它允许浏览器向跨源的服务器,发出 XMLHttpRequest 请求,从而克服AJAX 只能同源使用的限制。 为了保证用户信息的安全,所有的浏览器都遵循 同源策略 。 所谓

    2024年02月08日
    浏览(80)
  • 跨域解决方案

    因为浏览器可以同时打开很多页面,可以同时保存很多授权信息,浏览器为了安全问题,采用了同源策略(浏览器存在跨域问题,服务器不存在跨域问题) 同源策略:是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,浏览器很容易受到XSS、CSRF等攻

    2024年02月08日
    浏览(43)
  • 跨域解决方案(9种)

    说起跨域,就要知道什么是浏览器同源策略 浏览器同源策略:必须是协议、域名、端口完全一致的才符合同源策略 如果以上三项,有一项不同都涉及到跨域问题 浏览器是从两个方面去做这个同源策略的,一是针对接口的请求,二是针对Dom的查询。 有一个东西叫 cookie ,一般

    2024年02月04日
    浏览(50)
  • 跨域问题解决方案(三种)

    具有相同的Origin,也即是拥有相同的协议、主机地址以及端口。一旦这三项数据中有一项不同,那么该资源就将被认为是从不同的Origin得来的,进而不被允许访问。 是一个W3C标准。允许浏览器向跨源(协议 + 域名 + 端口)服务器,发出XMLHttpRequest请求,从而克服了AJAX只能同源使

    2024年02月07日
    浏览(59)
  • 前端面试:【跨域与安全】跨域问题及解决方案

    嗨,亲爱的Web开发者!在构建现代Web应用时,跨域问题和安全性一直是不可忽视的挑战之一。本文将深入探讨跨域问题的背景以及解决方案,以确保你的应用既安全又能与其他域名的资源进行互操作。 1. 什么是跨域问题? 跨域问题指的是在Web开发中,浏览器的同源策略(S

    2024年02月11日
    浏览(65)
  • 常见的跨域解决方案

    常见的跨域解决方案: 跨域问题可以分为两种情况: 前端跨域和后端跨域 。以下是针对这两种情况的跨域解决方案: 前端跨域解决方案: JSONP: 适用于前端向不同域名下的服务器请求数据,通过添加回调函数名称来实现跨域数据获取。 CORS: 当前端向服务器请求数据时,

    2024年02月12日
    浏览(49)
  • 前后端跨域解决方案

    跨域问题是由于浏览器的同源策略导致的 。同源策略是一种安全策略,它限制了一个源的文档或脚本如何能够与另一个源的资源进行交互。同源指的是协议、域名、端口号都相同。例如,一个页面从 http://www.example.com 加载了一段 JavaScript 代码,那么该页面就只能与 http://www

    2024年02月08日
    浏览(45)
  • 文件传输协议的五种安全文件传输替代方案

    对安全文件传输协议的需求,过去,文件传输协议(FTP)是发送文件的常用协议。这是一个更简单的时期,安全性比今天要少得多。 但是随着黑客变得越来越复杂,他们发现FTP缺乏安全性。他们知道FTP可以通过有限的方式来确保访问文件的人的身份(具有单个身份验证因素)

    2024年02月05日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包