SpringBoot解决跨域问题

今天第一次使用前后端分离,就碰到了跨域问题,接下来看看是怎么解决的:

问题:

现在我的前端代码是 5050 端口,然后后端是在8080端口:
前端的HTML文件:

<head title="first">
    <script src="../js/vue.js"></script>
    <script src="../js/axios.min.js"></script>
    <script src="../js/require.js"></script>
</head>
<body>
    <div id="myapp">
        {{message}}
        <button v-on:click="sayHello">say hello!</button>
    </div>
<script>
    new Vue({
        el: "#myapp",
        data: {
            message: "hello,vue"
        },
        methods: {
            sayHello: function(){
             // Send a POST request
            axios({
            method: 'get',
            url: 'http://localhost:8080/str',
            }).then(function(response){
                console.log(response)
            })
            }
        }
    })
</script>
</body>

可以看到,我要用Axios去访问后端的 http://localhost:8080/str
后端代码如下:

@RestController
public class My_Controller {
    @RequestMapping("/str")
    public String getstr(){
        return "hello.vue";
    }
}

当实现的时候,发现出现了跨域问题:
在这里插入图片描述

解决方案:

修改服务端

Spring Boot本身就提供了解决跨域问题的方法:
直接在Controller类里面使用@CrossOrigin 即可

@RestController
@CrossOrigin
public class My_Controller {
    @RequestMapping("/str")
    public String getstr(){
        return "hello.vue";
    }
}

然后再去访问的时候,发现跨域问题消失了:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值