博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Springboot中解决Ajax请求跨域问题
阅读量:3967 次
发布时间:2019-05-24

本文共 1596 字,大约阅读时间需要 5 分钟。

问题由来:

总结一下自己学习过程中遇到的问题,在SpringMVC中ajax中的的url请求可以直接跳转到对应控制类的映射地址,而将相同的项目代码移植到SpringBoot中后却发现此功能失效了,一开始以为是代码出错自己反复检查了好久,后来经老师点拨发现是ajax所在的html页面的启动端口是63342:项目代码如下

    
用户注册

请输入账号:

请输入用户名:

请输入密码:

html文件路径:/templates/register.html

控制类部分代码如下:

@Controller@CrossOrigin(origins ="*",maxAge = 3600)public class registerController {    @ResponseBody    @RequestMapping("/register")    public String register(@RequestBody String json) throws IOException {        String data;        System.out.println("--------------------------------------------------");        System.out.println(json);        ObjectMapper mapper = new ObjectMapper();        User user = mapper.readValue(json, User.class);        int userNo = user.getUserNo();        String userName = user.getUserName();        String password = user.getPassword();        System.out.println("--------------------------------------------------");        if(userNo==10011&&"张三".equals(userName)&&"123456".equals(password)){            data="注册成功,请登录";           return data;        }else{                 data=   "注册失败";                 return data;        }    }}

问题分析:

在原本的SpringMVC项目中,ajax中url的值是"/register",它能指向控制类"/register"映射的原因是:SpringMVC框架的前端页面都是由Tomcat启动,走的是统一的8080端口,而在SpringBoot项目中,由于它是内嵌的Tomcat,因此控制类依旧走的8080端口,而自己编写的html页面却不经过Tomcat服务器,因此就造成了ajax请求跨域的问题。


解决方案:

此解决方案仅针对于当前的问题域:

在ajax请求中的url应指向控制类映射地址的具体路径,包括端口号

url:"http://localhost:8080/register"

在对应的控制类中添加注解

@CrossOrigin(origins ="*",maxAge = 3600)接收相应端口的请求,这里的*是通配符,由于是自己做的项目所以没有考虑安全问题,建议都设置成请求地址的端口号来一一匹配。

转载地址:http://sfcki.baihongyu.com/

你可能感兴趣的文章
红外线遥控原理
查看>>
放大电路的主要性能指标?
查看>>
稳压、调压、监控、DC/DC电路大全
查看>>
放大电路的主要性能指标?
查看>>
运放电压和电流负反馈的讨论
查看>>
运放自激问题
查看>>
运放电压和电流负反馈的讨论
查看>>
终于 整明白了中断的工作原…
查看>>
终于 整明白了中断的工作原…
查看>>
终于 整明白了中断的工作原…
查看>>
终于 整明白了中断的工作原…
查看>>
2010年11月19日
查看>>
2010年11月19日
查看>>
TC35i 单片机
查看>>
TC35i 单片机
查看>>
AT 命令详解
查看>>
AT 命令详解
查看>>
AT指令发送PDU中文短信——使用串口…
查看>>
AT指令发送PDU中文短信——使用串口…
查看>>
s3c2440 uart
查看>>