跨域问题



跨域:当请求不同域名下的资源时,就会产生跨域请求问题。

跨域是指一个资源请求与其不在同一个域(源)的资源,不在同一个域(源)是指两个域的协议、域名或端口不同。





主要说明自己开发中遇到的跨域问题(基于SpringBoot)

跨域资源共享(CORS)
跨域资源共享(CORS)是浏览器提供的一种跨域协商机制,让前后端协商是否可以发出跨域请求。CORS将请求分为简单请求和复杂请求,对于简单跨域请求,浏览器会直接放行,对于复杂跨域请求,则通过预检机制和后端协商。
简单请求
一个简单请求要满足以下所有条件:
•只能使用GET、HEAD或POST请求方法
•不得手动设置以下头之外的头
•Accept
•Accept-Language
•Content-Language
•Content-Type
•DPR
•Downlink
•Save-Data
•Viewport-Width
•Width

•Content-Type只能是下面的一种
•application/x-www-form-urlencoded
•multipart/form-data
•text/plain

第一种

如果您使用的mvc框架是spring4.2以上的话,一个@CrossOrigin就可以搞定。将@CrossOrigin加到Controller上,那么这个Controller所有的请求都是支持跨域的,代码如下:
@Controller
@CrossOrigin
public class Test {


将@CrossOrigin加到请求方法上,那么这个请求是支持跨域的,代码如下
 @CrossOrigin
    @RequestMapping("/test")
    @ResponseBody
 public void test(@RequestParam(required=false, defaultValue="World")
 
 
第二种

全局配置,也需要spring4.2以上。
    @Bean
    public WebMvcConfigurer corsConfigurer() {
        return new WebMvcConfigurerAdapter() {
            @Override
            public void test(CorsRegistry registry) {
                registry.addMapping("/test-javaconfig").allowedOrigins("http://localhost:8080");
            }
        };
    }




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值