跨域获取后台数据undefined_拨号跨域问题

86aa282e01df09aafe25513cdbe60dc7.png

现象:

  1. 录音拨号未发现录音信息

处理:

  1. 查看ajax函数返回值,录音拨号之后未获取到相关文件信息
  2. 也即是直接使用ajax请求数据,接收到的数据为空
  3. 控制台打印信息:Cross-Origin Read Blocking (CORB) blocked cross-origin responsehttp://192.168.66.3:8080/startdialpassive?channelno=12&telephoneno=10086with MIME type text/plain. Seehttps://www.chromestatus.com/feature/5629709824032768for more details.
  4. 使用封装的senData函数发送请求,请求了两次
  5. 录音拨号时单独地址访问能够获取到信息
  6. 重新安装浏览器工具Orign之后未再报Cross-Origin提示信息

分析:

  1. 返回值不正常,可能是硬件或者其他操作问题,也可能是前端代码问题。
  2. 同上,先从前端入手
  3. 首先,跨域问题,考虑到之前能正常工作,然后出现跨域问题,直接入手浏览器跨域工具,搜索不到可能是过期了,从新下载了一个相关工具。然而得到的结果是没有打印跨域信息仍然访问不到数据
  4. 使用senData函数方式访问,发送两次请求;
    这是因为浏览器对复杂跨域请求的处理,在发送真正的请求前, 会先发送一个方法为OPTIONS的预请求(preflight request), 用于试探服务端是否能接受真正的请求,如果options获得的回应是拒绝性质的,比如404403500等http状态,就会停止post、put等请求的发出。
    三种方式可能引起此种情况:a.请求方法不是GET/HEAD/POST
    b.POST请求的Content-Type并非application/x-www-form-urlencoded,multipart/form-data,或text/plain
    c.请求设置了自定义的header字段
  5. 录音拨号时单独访问能够获取到数据信息

预想:

  1. 可能录音拨号单独地址访问是偶然情况,操作失误,排除方式:查看控制台打印信息
  2. 可能是由于ajax请求配置问题,排除方式:重写ajax配置
  3. 可能是由于跨域问题仍未解决...(虽然重新安装浏览器工具Orign之后未再报Cross-Origin提示信息)

处理:

  1. 拨号,看控制台是否打印信息
  2. 拨号,看直接访问链接是否打印信息
  3. 拨号,切换ajax访问方式,以script获取callback方式测试看是否能获取数据值(jsonp)
  4. 浏览器安装新工具:Moesif Orign & CORS Changer,拨号

结果:1-3失败,4成功,跨域工具失效问题

猜想:

  1. 安装浏览器跨域工具是否具有安全性等负面问题
  2. 同源问题提示 提示(黄色字体) 和 错误(红色字体)有何区别?(如下两图)
  3. 跨域问题,若无法有相应后台配合,例如此次的拨号录音,那么是否就无法解决了

5b1e6fd30b29474ddd5026f971e65c99.png
黄色字体同源提示

5295cc7802c09d57de999e912def2865.png
红色字体同源提示
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值