鱼C论坛

 找回密码
 立即注册
查看: 45|回复: 6

[已解决]关于域名转发但依然访问不到,405的问题

[复制链接]
发表于 昨天 15:55 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
愁,公司这边项目有点复杂。
现在我的一个模块写在B项目中,但是会用到A的登录和用户,B部署的服务器域名 https://Bpage.net/api/....(这个可以请求到我的接口,但是无法使用) , A项目部署的服务器域名 https://Apage.net/api/... (转发前,请求不到我的接口,但现在只能用这个),本地联调时没问题。
因为前端连的我ip,昨天测试人员打开页面说访问不到接口,找架构问了下,说前端要用到用户登录就需要写A项目中,用的A的域名请求我的接口,肯定请求不到啊,而后端我的模块写在B中,于是让运维加了个请求的转发,但是加了后还是无论用postman还是用前端页面调用(A域名),还是不通。怎么解决?
最佳答案
昨天 17:17
确定服务器接口也改了吗?
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 昨天 15:56 | 显示全部楼层
关于域名转发后仍访问不到并出现405错误的解决方案

您好!遇到域名转发后依然访问不到接口并返回405错误,这通常与转发配置、请求方法或跨域问题有关。以下是一些排查步骤和解决方案:

  • 检查转发配置
    确保运维已将A域名(https://Apage.net/api/...)的请求正确转发到B域名(https://Bpage.net/api/...)。转发应保持请求方法、路径和头信息不变。您可以联系运维确认转发规则是否如下示例:

    1. 例如:将 [url=https://Apage.net/api/模块路径]https://Apage.net/api/模块路径[/url] 转发到 [url=https://Bpage.net/api/模块路径]https://Bpage.net/api/模块路径[/url]
    复制代码

  • 验证请求方法和路径
    405错误表示服务器不支持该请求方法。请用Postman测试:
    - 直接请求B域名接口,确认方法和路径正确。
    - 然后请求A域名转发后的接口,比较两者的区别。确保您使用的HTTP方法(GET、POST等)与接口定义一致。
  • 处理跨域问题
    如果前端通过浏览器调用,浏览器会执行CORS检查。请确保B项目的服务器配置了允许A域名的跨域请求。例如,在B项目的响应头中添加:

    1. Access-Control-Allow-Origin: [url=https://Apage.net]https://Apage.net[/url]
    2. Access-Control-Allow-Methods: GET, POST, OPTIONS
    3. Access-Control-Allow-Credentials: true
    复制代码

    注意:如果涉及认证,需设置 Access-Control-Allow-Credentials 为 true。
  • 携带认证信息
    由于需要A项目的登录状态,确保请求中包含了认证信息(如Cookies或Tokens)。在转发配置中,可能需要设置头信息传递。前端请求时,也应设置 withCredentials 为 true。
  • 查看服务器日志
    检查A和B项目的服务器错误日志,查找405错误的详细信息。这有助于确定是转发问题还是B项目接口问题。
  • 测试直接访问B接口
    先用Postman直接测试B域名接口,确认接口本身正常工作。如果B接口也返回405,则问题在B项目代码或配置。
  • 联系运维进一步调试
    如果以上步骤无效,请与运维合作,检查转发链路上的任何代理或负载均衡器配置,确保请求被正确处理。


希望这些步骤能帮助您解决问题!如果仍有困难,请提供更多错误详情(如完整响应头、日志片段),以便进一步分析。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 昨天 16:01 | 显示全部楼层
BrendanEich 发表于 2026-2-26 15:56
关于域名转发后仍访问不到并出现405错误的解决方案

您好!遇到域名转发后依然访问不到接口并返回405错误 ...

B接口是正常工作的,且不可能是请求方式不匹配的问题。且公司经常有限流操作,即将部分生产服务器流量转发到预生产服务器,所以跨域很大概率也是早就解决的。排除这几个,列出剩余的可能。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 昨天 16:01 | 显示全部楼层
Filthy-ice 发表于 2026-02-26 16:01
BrendanEich 发表于 2026-2-26 15:56
关于域名转发后 ...


根据您的情况,排除了接口本身、请求方法和跨域问题,剩余可能原因及排查建议如下:

检查转发规则配置
请运维确认转发规则是否正确匹配路径并指向B接口。例如,是否将 [url=https://Apage.net/api/模块路径]https://Apage.net/api/模块路径[/url] 转发到 [url=https://Bpage.net/api/模块路径,且没有多余的路径重写或冲突规则。]https://Bpage.net/api/模块路径,且没有多余的路径重写或冲突规则。[/url]

检查请求头传递
在转发过程中,认证头(如Cookie、Authorization)可能丢失。使用浏览器开发者工具或Postman对比直接请求B接口与通过A域名转发的请求头,确保认证信息完整传递。

检查代理服务器限制
公司的代理服务器(如Nginx)可能限制了某些请求方法或路径。请运维检查代理配置中是否有 limit_except 等限制,或是否误将POST请求转为GET。

检查服务器安全策略
A或B服务器的防火墙、安全组或应用层安全策略(如Spring Security)可能拦截了转发的请求。查看服务器日志,确认是否有拦截记录。

检查路径重写问题
如果转发时路径重写不正确,会导致B接口收到错误路径。例如,转发时丢失了 /api 前缀。请运维检查重写规则。

检查负载均衡器配置
如果使用了负载均衡器,可能有一些健康检查或路由策略影响了转发。请运维确认负载均衡器配置。

测试直接从A服务器发起请求
在A服务器上使用curl命令模拟转发请求,观察响应。例如:


  1. curl -X POST -H "Content-Type: application/json" -d '{"test":"data"}' [url=https://Apage.net/api/您的接口路径]https://Apage.net/api/您的接口路径[/url]
复制代码


查看详细日志
检查A和B项目的应用日志及代理服务器访问日志,寻找405错误的详细原因。可能B接口对某些特定条件返回405。

请与运维合作,逐步检查以上方面,通常能定位问题。如有更多错误信息,欢迎补充。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 昨天 17:17 | 显示全部楼层    本楼为最佳答案   
确定服务器接口也改了吗?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 昨天 18:13 | 显示全部楼层
不二如是 发表于 2026-2-26 17:17
确定服务器接口也改了吗?

解决了,逻辑整错了,还是需要前端修改请求接口,调用登录时候用代理。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 昨天 18:31 | 显示全部楼层
Filthy-ice 发表于 2026-2-26 18:13
解决了,逻辑整错了,还是需要前端修改请求接口,调用登录时候用代理。

嗯嗯,顺利解决就好
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-2-27 06:49

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表