当前位置: 首页 > news >正文

openapi回调地址请求不通过_在实际开发中需要访问两个不同地址的跨域问题!...

1 首先来说什么是跨越,为什么会出现跨域

出于浏览器的同源策略限制。同源策略(Sameoriginpolicy)是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能可能都会受到影响。可以说Web是构建在同源策略基础之上的,浏览器只是针对同源策略的一种实现。同源策略会阻止一个域的javascript脚本和另外一个域的内容进行交互。所谓同源(即指在同一个域)就是两个页面具有相同的协议(protocol),主机(host)和端口号(port)

当协议,主机,端口号三者之前任意一个与当前的url不同就会出现跨越

c08c0076d617d42a377e29be4c0a2c0d.png

2 非同源限制

【1】无法读取非同源网页的 Cookie、LocalStorage 和 IndexedDB

【2】无法接触非同源网页的 DOM

【3】无法向非同源地址发送 AJAX 请求

3跨越的解决办法

【1】设置document.domain解决无法读取非同源网页的 Cookie问题

因为浏览器是通过document.domain属性来检查两个页面是否同源,因此只要通过设置相同的document.domain,两个页面就可以共享Cookie(此方案仅限主域相同,子域不同的跨域应用场景。)

// 两个页面都设置
document.domain = 'test.com'

【3】JSONP

JSONP 是服务器与客户端跨源通信的常用方法。最大特点就是简单适用,兼容性好(兼容低版本IE),缺点是只支持get请求,不支持post请求。

核心思想:网页通过添加一个<script>元素,向服务器请求 JSON 数据,服务器收到请求后,将数据放在一个指定名字的回调函数的参数位置传回来。

1原生实现

<

2jQuery ajax

$.ajax({
   url: 'http://www.test.com:8080/login',
   type: 'get',
   data: {},
   xhrFields: {
       withCredentials: true    // 前端设置是否带cookie
   },
   crossDomain: true,   // 会让请求头中包含跨域的额外信息,但不会含cookie
});

这个不想再多说以上参考

请大家自己查阅​blog.csdn.net

4接下来说我工作中遇到的问题 ,一个react项目中出现两次跨越!

一个接口,而且两个接口的是这样的请求的端口号并不一样!这就意味着需要再一次解决跨越问题!原来一直以为proxy只能解决一次跨越!今天尝试了再package.json里写两个代码如下

 "proxy": {
 "/wahu_lite/UserAvatarDownloader":{
 "target":"http://10.10.10.245:7888"
    },
 "/": {
 "target": "http://10.10.10.245:8999"
    }
  }

因为第一个请求图片的网址/后面的是固定的java后台做了一个完全匹配!这样完全是行的通的!

相关文章:

  • pkg文件转图片_Go Gin 系列十二:优化配置结构及实现图片上传
  • python编程框架_整理了 34 个被吹爆了的Python开源框架
  • 编程实现路由算法_PLC数据采集怎么实现?
  • python http代理_python HTTP代理中转服务
  • wxpython使用简介_wxPython:事件处理介绍一
  • 必须声明标量变量 @sum_level。_Java变量
  • ubuntu localhost可以访问 ip不能访问_通过两次ssh tunnel访问gateway后主机上的jupyter notebook服务...
  • python形参和实参的含义_Python3函数的形参如何接收实参?
  • 在python将字符串中的空格转换为下划线_如何将下划线替换为空格,反之亦然?...
  • python图像锐化_opencv实现图片模糊和锐化操作
  • python中configparser函数_python基础14 ---函数模块4(configparser模块)
  • python接口自动化测试报告_python接口自动化(二十七)--html 测试报告——上(详解)...
  • python中的常量和变量_python中的常量和变量代码详解
  • 常用公差配合表图_《公差配合与测量技术》小结
  • pythonassert关键字_Python assert实现软件测试
  • 深入了解以太坊
  • 【跃迁之路】【641天】程序员高效学习方法论探索系列(实验阶段398-2018.11.14)...
  • AHK 中 = 和 == 等比较运算符的用法
  • avalon2.2的VM生成过程
  • es6--symbol
  • hadoop入门学习教程--DKHadoop完整安装步骤
  • nfs客户端进程变D,延伸linux的lock
  • node-sass 安装卡在 node scripts/install.js 解决办法
  • Vue.js源码(2):初探List Rendering
  • 不上全站https的网站你们就等着被恶心死吧
  • 基于Volley网络库实现加载多种网络图片(包括GIF动态图片、圆形图片、普通图片)...
  • 基于阿里云移动推送的移动应用推送模式最佳实践
  • 力扣(LeetCode)357
  • 前端每日实战 2018 年 7 月份项目汇总(共 29 个项目)
  • 实现简单的正则表达式引擎
  • 微服务核心架构梳理
  • 为物联网而生:高性能时间序列数据库HiTSDB商业化首发!
  • 硬币翻转问题,区间操作
  • # 飞书APP集成平台-数字化落地
  • ######## golang各章节终篇索引 ########
  • ###项目技术发展史
  • #QT(串口助手-界面)
  • #我与Java虚拟机的故事#连载15:完整阅读的第一本技术书籍
  • (1)虚拟机的安装与使用,linux系统安装
  • (10)ATF MMU转换表
  • (3) cmake编译多个cpp文件
  • (企业 / 公司项目)前端使用pingyin-pro将汉字转成拼音
  • (十一)手动添加用户和文件的特殊权限
  • (转)memcache、redis缓存
  • (转)nsfocus-绿盟科技笔试题目
  • ****** 二 ******、软设笔记【数据结构】-KMP算法、树、二叉树
  • **PHP二维数组遍历时同时赋值
  • .htaccess 强制https 单独排除某个目录
  • .mkp勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
  • .NET Core 版本不支持的问题
  • .Net Redis的秒杀Dome和异步执行
  • .NET 程序如何获取图片的宽高(框架自带多种方法的不同性能)
  • .net 调用海康SDK以及常见的坑解释
  • .NET/MSBuild 中的发布路径在哪里呢?如何在扩展编译的时候修改发布路径中的文件呢?
  • .NET委托:一个关于C#的睡前故事