为什么postman调接口不会跨域而浏览器会



1、为什么postman调接口不会跨域而浏览器会?

跨域是指的 当前资源访问其他资源时发起的http请求由于安全原因(由于同源策略,域名、协议。端口中只要有一个不同就不同源),浏览器限制了这些请求的正常访问,特别需要注意的是这些发生在 浏览器中。而通过 postman等工具调用接口时,只是 简单的访问一个资源,并不存在资源的相互访问。

2、理解spring提供的@CrossOrigin注解

1
@CrossOrigin(maxAge = 3600,origins = "*")
  • @CrossOrigin可以放在某个方法上,或者放在类上,这样对类中所有请求方法有效,指定能访问的域集合,即是设置Access-Control-Allow-Origin。

  • maxAge 属性指定了预检请求的缓存时间,单位是秒。对应http的Access-Control-Max-Age属性

  • maxAge缓存的内容为:Access-Control-Allow-Methods和Access-Control-Allow-Headers 提供的信息。

3、解决

方式一:通过后端配置CorsConfig类实现WebMvcConfigurer 或者 添加 @CrossOrigin注解
方式二:通过nginx代理转发url到跟请求的url 同ip同端口(即同源)

打赏
  • 版权声明: 本博客所有文章除特别声明外,均采用 Apache License 2.0 许可协议。转载请注明出处!
  1. © 2020-2021 Lauy    湘ICP备20003709号

请我喝杯咖啡吧~

支付宝
微信