关于前后端分离项目部署到阿里云 OSS API 接口问题

2021-07-30 13:39:26 +08:00
 suling

我有一个完全前后端分离的项目 vue 打包后将 dist 全部上传到 OSS 并且配置了 CDN 页面可以正常访问,OSS 跨域也设置过了。但是所有的 Get 接口提示 404,Post 接口提示 405 大家有遇到过类似的情况吗?怎么解决

2452 次点击
所在节点    Vue.js
16 条回复
xuxuxu123
2021-07-30 13:52:52 +08:00
后端部署在哪?
postman 可以访问通后端接口吗?
suling
2021-07-30 14:11:23 +08:00
@xuxuxu123 后端是 PHP 的 部署在其他服务器上,postman 是通不了的 我在 vue 里设置了跨域代理 本地调试是没问题的。但是就是 OSS 内有问题
ylls
2021-07-30 14:39:44 +08:00
前后端是同一个域名吗
ylls
2021-07-30 14:41:08 +08:00
如果用的是一个域名 流量都没到后端服务器上面
如果不是同一个域名 直接调用后端接口试试看
yimity
2021-07-30 14:44:15 +08:00
@suling postman 访问不了,你 Vue 怎么能访问得了?
Vegetable
2021-07-30 14:45:58 +08:00
405 是 method not allowed
根据你的描述,你是 api 请求到 oss 上去了。

打开调试工具,网络,找一个 405 的请求,复制为 curl(bash),发出来给大家看看
yushiro
2021-07-30 14:59:41 +08:00
OSS 上怎么可能支持 PHP,OSS 只是一个硬盘,你的 api 需要部署在其他 ecs 服务器下,指定一个域名
VUE 打包的时候,应该可以配置 public 路径,类似象 CDN 那样的,把静态资源丢 CDN 域名上
最终访问还是打开 ECS 的域名
zoharSoul
2021-07-30 16:18:47 +08:00
postman 通不了你琢磨 vue 的问题干啥
xuxuxu123
2021-07-30 16:20:58 +08:00
@suling vue 跨域代理只在 dev 开发环境有效;打包后是无效的;静态 html 做不了跨域;
bigbigpark
2021-07-30 16:22:38 +08:00
@yushiro oss 上只有前端文件
dream4ever
2021-07-30 16:23:18 +08:00
@yushiro “后端是 PHP 的 部署在其他服务器上”,楼主是把前端部分部署在 OSS 上的。
xuxuxu123
2021-07-30 16:23:23 +08:00
现在可能存在的问题:
1 、前端请求地址有误,你可以打开浏览器控制台,请求地址应该是请求到了 oss ;#6 说的就是这个
2 、后端对外接口不通,如果后端没问题的话,postman 应该是可以访问的到的,postman 不存在跨域。跨域只针对浏览器环境
3 、前端请求跨域,这个可以在 php 处理,或者在服务器部署 nginx 处理
qwerthhusn
2021-07-30 16:23:24 +08:00
看 F12,对着有问题的请求右键点 Copy -> Copy As cURL(bash),仔细观察 URL,Referer,Origin 各种头,这种问题一般很容易定位出来。
xuxuxu123
2021-07-30 16:28:10 +08:00
楼主吧你的域名发出来,,,就能很快处理了~~~
zzl22100048
2021-07-30 17:07:07 +08:00
前端的 baseUrl 没有配置吧,默认会请求当前域名
ch2
2021-07-30 17:39:17 +08:00
跨域请求部署的时候必须发绝对路径,不能发相对路径,dev 的时候是本机转发的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/792680

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX