用Postman调试跨域问题

发表于:2021-4-27 09:31

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:上课爱睡觉    来源:博客园

  前言
  跨域问题我已经遇到许多次了,每次都是搞得满头问号,这次要把这个问题彻底梳理一下,弄明白问题的根源,以后就不会再手忙脚乱了。
  跨域问题,大佬的这篇文章《SpringBoot配置Cors解决跨域请求问题》原理及解决方法写的非常好,强烈推荐,我下面的内容主要是讲后端开发如何进行调试。
  另外,了解一下Http的内容协商机制,也有助于我们解决跨域问题,推荐下这篇文章《HTTP协议中Vary的一些研究》。
  跨域问题
  首先,跨域问题本质是因为浏览器的同源策略导致的。
  1.浏览器会为请求头添加Origin、Host两个字段,分别代表请求来源站点、请求的目标站点(域名或者ip+端口)。
  2.服务器收到请求后,根据Origin和Host两个字段判断是否是跨域请求。
  3.如果允许,则在HTTP头信息中添加Access-Control-Allow-Origin字段,并返回正确的结果。
  4.如果不允许,则不在HTTP头信息中添加Access-Control-Allow-Origin字段。
  postman复现跨域问题
  1.Postman在请求Header上,并不会主动添加Origin字段,需要我们手动添加,如图:
  2.postman不管是否跨域,返回的都是200结果,因此不能用是否返回值判断服务器是否允许跨域,而应该使用response的Header字段中是否存在允许跨域的字段来判断是否允许跨域。
  相关字段包括:
  Access-Control-Allow-Origin是否允许该请求访问
  Access-Control-Expose-Headers可选,可以让用户拿到的字段。有几个字段无论设置与否都可以拿到的,包括:Cache-Control、Content-Language、Content-Type、Expires、Last-Modified、Pragma。
  Access-Control-Allow-Credentials:可选,用户是否可以发送、处理cookie。

      本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号