我有一个完全前后端分离的项目 vue 打包后将 dist 全部上传到 OSS 并且配置了 CDN 页面可以正常访问,OSS 跨域也设置过了。但是所有的 Get 接口提示 404,Post 接口提示 405 大家有遇到过类似的情况吗?怎么解决
1
xuxuxu123 2021-07-30 13:52:52 +08:00
后端部署在哪?
postman 可以访问通后端接口吗? |
2
suling OP @xuxuxu123 后端是 PHP 的 部署在其他服务器上,postman 是通不了的 我在 vue 里设置了跨域代理 本地调试是没问题的。但是就是 OSS 内有问题
|
3
ylls 2021-07-30 14:39:44 +08:00
前后端是同一个域名吗
|
4
ylls 2021-07-30 14:41:08 +08:00
如果用的是一个域名 流量都没到后端服务器上面
如果不是同一个域名 直接调用后端接口试试看 |
6
Vegetable 2021-07-30 14:45:58 +08:00
405 是 method not allowed
根据你的描述,你是 api 请求到 oss 上去了。 打开调试工具,网络,找一个 405 的请求,复制为 curl(bash),发出来给大家看看 |
7
yushiro 2021-07-30 14:59:41 +08:00 via iPhone
OSS 上怎么可能支持 PHP,OSS 只是一个硬盘,你的 api 需要部署在其他 ecs 服务器下,指定一个域名
VUE 打包的时候,应该可以配置 public 路径,类似象 CDN 那样的,把静态资源丢 CDN 域名上 最终访问还是打开 ECS 的域名 |
8
zoharSoul 2021-07-30 16:18:47 +08:00
postman 通不了你琢磨 vue 的问题干啥
|
10
bigbigpark 2021-07-30 16:22:38 +08:00
@yushiro oss 上只有前端文件
|
11
dream4ever 2021-07-30 16:23:18 +08:00
@yushiro “后端是 PHP 的 部署在其他服务器上”,楼主是把前端部分部署在 OSS 上的。
|
12
xuxuxu123 2021-07-30 16:23:23 +08:00
现在可能存在的问题:
1 、前端请求地址有误,你可以打开浏览器控制台,请求地址应该是请求到了 oss ;#6 说的就是这个 2 、后端对外接口不通,如果后端没问题的话,postman 应该是可以访问的到的,postman 不存在跨域。跨域只针对浏览器环境 3 、前端请求跨域,这个可以在 php 处理,或者在服务器部署 nginx 处理 |
13
qwerthhusn 2021-07-30 16:23:24 +08:00
看 F12,对着有问题的请求右键点 Copy -> Copy As cURL(bash),仔细观察 URL,Referer,Origin 各种头,这种问题一般很容易定位出来。
|
14
xuxuxu123 2021-07-30 16:28:10 +08:00
楼主吧你的域名发出来,,,就能很快处理了~~~
|
15
zzl22100048 2021-07-30 17:07:07 +08:00
前端的 baseUrl 没有配置吧,默认会请求当前域名
|
16
ch2 2021-07-30 17:39:17 +08:00
跨域请求部署的时候必须发绝对路径,不能发相对路径,dev 的时候是本机转发的
|