请老师解答

请老师解答

老师你好。


使用nginx的docker容器,来配置header的本质:是把由nginx转发的请求,的请求头给变化一下。

可是,最终浏览器呈现的效果是:响应头上增加了配置内容。

这不矛盾吗?为什么不是请求头上增加呢?


https://img1.sycdn.imooc.com//climg/63d5e18909261aad12871017.jpg

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学你好,跨域并不会阻止请求的发出,也不会阻止请求的接受,跨域是浏览器为了保护当前页面,你的请求得到了响应,浏览器不会把响应的数据交给页面上的回调,取而代之的是去提示你这是一个跨域数据。如果有对应的异常信息也会告知从哪个位置请求的资源被阻挡了,因为没有在响应头里发现:"Access-Control-Allow-Origin"的响应头。所以这里需要在对应的响应头中进行配置

Access-Control-Allow-Credentials:响应头表示是否可以将对请求的响应暴露给页面,返回true则可以,其他值均不可以。

祝学习愉快~

  • Jerry_Zheng24 提问者 #1

    老师,这么理解,可以吗?


    用户通过浏览器把请求发给nginx,nginx收到后,再在以响应的形式返回给浏览器。


    期间,nginx有权决定这个响应,到底能不能被用户看到。


    如果请求被浏览器检测到是不跨域,没问题,返回的响应用户都能看到。


    但是如果请求被浏览器检测到是跨域(CORS),处于安全考虑,浏览器(小管家)会“伸张正义”,会把返回的响应藏起来,不让用户非法看到。


    当然,浏览器还认识它的上级nginx(大管家)的“三道令牌”(如下),nginx返回给浏览器的响应中如果额外有“三道令牌”,那没问题,浏览器我没话可说,让用户你看到跨域内容便是。


    https://img1.sycdn.imooc.com//climg/63d71e890970a86212650549.jpg

    2023-01-30 09:34:58
  • 好帮手慕小脸 回复 提问者 Jerry_Zheng24 #2

    同学你好,理解是可以的

    祝学习愉快~

    2023-01-30 14:14:25
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星

相似问题

登录后可查看更多问答,登录/注册

请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师