
我有一个完全前后端分离的项目 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 的时候是本机转发的 |