网上有很多使用nginx解决跨域的教程。都只是草草地介绍说是利用其反向代理的能力。
【】然而nginx是实现跨域的原理是什么呢?
【】是做代理接口,它去请求实际服务器,在将数据返回给我们吗?
【】还是说它修改了发送方的header值,让请求的header与目标域名一致?
【】它具体的运行流程是怎么样的呢?
网上有很多使用nginx解决跨域的教程。都只是草草地介绍说是利用其反向代理的能力。
【】然而nginx是实现跨域的原理是什么呢?
【】是做代理接口,它去请求实际服务器,在将数据返回给我们吗?
【】还是说它修改了发送方的header值,让请求的header与目标域名一致?
【】它具体的运行流程是怎么样的呢?
8 回答3.6k 阅读
2 回答1.8k 阅读✓ 已解决
4 回答1.8k 阅读
1 回答1.4k 阅读✓ 已解决
1 回答995 阅读✓ 已解决
1 回答870 阅读✓ 已解决
2 回答1.4k 阅读
【】首先,直接在浏览器地址栏中,输入某接口地址。是不会产生跨域问题的。
只有当在某域名的页面中,由该页面发起的接口请求。才可能会跨域。
nginx就类似于这个浏览器,它接收到外部对它的请求( 注意,nginx只会接收别人对它的请求,而不会拦截浏览器的请求 ),再类似浏览器地址栏一样去请求某个接口。最后将请求到的内容返回回去
【】是的
【】不一定会修改,可以进行修改。
【】前端利用host结合nginx实现跨域的运行流程:
Brower =》 host =》 nginx =》 目标地址
服务器数据 =》 nginx =》 Brower
也就是说,nginx并不是通过监听brower的请求。
而是作为一个服务器,接收外部对本机的请求。
所以是先通过host,让请求指向本机,才会经过nginx。才能进行转发。