跨域和跨域的解决方案

什么是域

域指的是域名
什么是跨域
域名,端口,协议。只要有一个不同即是跨域,
跨域指的是浏览器在同源策略下浏览器不能执行其他网站的脚本
跨域的本质是浏览器的一种安全策略
只有在浏览器上才有跨域限制

如何解决跨域问题

  • 使用jsonp(需要前后端配合才能实现)

  • 前端使用 script标签的scr属性

  • 后端需要使用res.jsonp返回数据

    • jsonp只在GET请求下使用,POST请求不能使用

** 2.jsonp原理**
Ajax请求受到同源策略影响,不允许进行跨域请求,而script标签scr属性中的链接可以访问跨域的js脚本,所以利用这个特性可以获取到跨域的数据
2.使用代理跨域
原理:使用代理请求服务器然后返回给前端来绕过同源策略
nodejs中使用http-proyx-midleware中间件代理实现跨域
后端也可以使用nginx
前端还可以使用webpack实现代理

使用方法
//安装http-proyx-midleware插件
在项目根目录打开命令行工具
输入安装
npm install http-ptoyx-midleware -S


//引入模块
var app = require('express');
var proyx = require('http-proyx-midleware')
//注册
app.use('/user',proyx{
    target:"http://xxx"//接口地址
    changeOrigin:true
})

3.正向代理和反向代理
1.正向代理
正向代理中服务器并不知道是那个客户端发起的请求因为他的所有请求都是来自代理服务器,所以说在正向代理中客户端对于服务器来说是不可见的
2。反向代理
反向代理与正向代理相反,反向代理不需要在客户端去设置,在反向代理的过程中客户端只需要请求这个代理服务器,而代理服务器根据相应的设置去请求相应的服务器,因此在反向代理中服务器对于客户端来说是不可见的
CORE (跨域资源共享)只需要后端工程师来完成
原理:在请求头中写入说明此接口为安全的语句,使得浏览器的同源策略能够放行

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值