前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >记录一次接口离奇的接口跨域问题(Vue)

记录一次接口离奇的接口跨域问题(Vue)

作者头像
贫困的蚊子
发布2023-08-10 12:37:16
1770
发布2023-08-10 12:37:16
举报
文章被收录于专栏:贫困的蚊子贫困的蚊子

错误复现

接口方

可以看到已经做了跨域处理

image-1680703160429
image-1680703160429

代码调用

vue调用,似乎没有任何问题

image-1680703251613
image-1680703251613

浏览器报错

Access to XMLHttpRequest at ‘https://api.0po.cn/api?id=2’ from origin ‘http://0po.cn’ has been blocked by CORS policy: No ‘Access-Control-Allow-Origin’ header is present on the requested resource.

image-1680703324550
image-1680703324550

我懵逼了,以往常经验,接口加了解决跨域的,而且没指定域名,用*代表允许所有域名调用,为什么还报呢? 于是开始了,百度

image-1680703509131
image-1680703509131

结果呢: 加了一大把,都不行,有的人还让修改Nginx反代,我修改你个****,反代你个****,让动Nginx的人,都不知道以后出问题,其它网站的后果是什么 无语了。。。

当我看到调取Redis的接口代码加了跨域,浏览器没拦,就接口的php拦了 我…更无语了


观察问题

当然是,动用我前端观察能力 我日,接口怎么301跳转了,我也没重定向啊

image-1680703821422
image-1680703821422

手动打开,似乎没有什么问题(问题就出在这里)

image-1680704115929
image-1680704115929

于是 看了看前端调redis的接口写法,似乎知道问题了

image-1680703957150
image-1680703957150

解决

web的默认文件是index.php,对于默认文件,可以不写文件名+后缀 当然也可以指定,这里不做多余科普

那么我的接口,完整调用应该是:https://api.0po.cn/api/index.php?id=2 而我写法,应该在api后面加个(/)号就可以解决了

image-1680703251613
image-1680703251613

直接改写

image-1680704502680
image-1680704502680

总结

对于接口是默认文件的,手动浏览器访问,浏览器会自动给你加上(/) 也就是说: 访问: https://api.0po.cn/api?id=2 浏览器:https://api.0po.cn/api/?id=2

可坑死我了,似乎jquery会自动给你加上(/),懒得测试了 以前没用vue,用jquery没出现过

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2023-04-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 错误复现
    • 接口方
      • 代码调用
        • 浏览器报错
          • 观察问题
          • 解决
          • 总结
          相关产品与服务
          云数据库 Redis
          腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档