我的网络应用程序的前端无法连接到后端。后端托管在 AWS Lightsail 上,前端和后端 DNS 均使用 Cloudfront CDN 进行路由。
应用程序结构
https://frontend.domain.com
https://name.rng.region.cs.amazonlightsail.com
https://backend.domain.com
到上述 Lightsail 公共域
我尝试过的事情
当前端
frontend.domain.com
尝试使用 fetch API 向后端 backend.domain.com
发送请求时,分析浏览器的网络检查器会发现:
当我尝试通过浏览器直接连接到
backend.domain.com
时,我希望看到文本“运行状况检查成功!”,如果我直接通过 Lightsail 公共域 URI 进行连接,就会出现这种情况。相反,分析浏览器的网络检查器会发现发生了重定向循环。
请注意,在之前的开发过程中,我之前直接使用 Lightsail 公共域将请求从前端发送到后端,效果很好。
我怀疑这可能是 HTTP/HTTPS 配置的问题。我希望能更深入地解释我的配置出错的地方和原因,以及我应该采取哪些步骤来纠正错误。非常感谢!
我怀疑 CORS 问题没有到达后端端点,但这是常见的行为。
您应该有两个端点。
map '/flight.xml' do
run lambda { |env| [200, { 'Content-Type' => 'application/xml',
'Access-Control-Allow-Origin' => '*',
'Access-Control-Allow-Credentials' => true,
'AMP-Access-Control-Allow-Source-Origin' =>'https://frontend.domain.com'
}, [.. web page... ]
end
map '/catalogo.json' do
run lambda { |env| [200, { 'Content-Type' => 'application/json',
'Access-Control-Allow-Origin' => '*',
'Access-Control-Allow-Credentials' => true,
'AMP-Access-Control-Allow-Source-Origin' => 'https://endpoint.backend.com'
}, [. web page..]
end