springboot实现ajax跨域请求

springboot实现ajax跨域请求有段时间没写文章了。看到有人提问ajax跨域请求的问题。博主要再次强调,跨域,就是从不同的的IP端口获取数据,比如说,从www.baidu.com获取数据,就叫跨域!那么localhost:8080与localhost:8081之间呢?也叫跨域。如果处理的不好,就会报错,不仅前端报错,后端也会报错。那么如何解决呢?着急的人,请直接往下看,不急的请听我细细道来,一定能解决您的问题。我再此保证

大家好,又见面了,我是你们的朋友全栈君。

有段时间没写文章了。看到有人提问ajax跨域请求的问题。

博主要再次强调,跨域,就是从不同的的IP端口获取数据,比如说,从www.baidu.com获取数据,就叫跨域!那么localhost:8080与localhost:8081之间呢?也叫跨域。如果处理的不好,就会报错,不仅前端报错,后端也会报错。

那么如何解决呢?着急的人,请直接往下看,不急的请听我细细道来,一定能解决您的问题。我再此保证!

好多人都说,spring对跨域有自己的一套,比如实现了这个类那个类的。还有说是在ajax里面加上 _method 等等,众说纷纭啊!到底是不是大家所说的那样呢?先来看下常规的。解决PUT和DELETE请求时,_method方法到底好不好使呢??答案是,确实管用!那么实现其他类好使吗?答案是:在springboot中不适用。因为它没有XML可以配置。OK,好了,既然你说_method能解决PUT请求,那就用它呗。答案是,肯定不行。为啥不行呢?

你想一想,你要去用PUT,DELETE,说明什么?肯定是RestFul请求啊,对不对。既然是rest,那么肯定会部署服务器啊,那么服务器的端口和地址肯定不是你本机吧,那你怎么指定啊?涉及什么问题啊,跨域,是跨域了,对不对?都跨域了,你是不是应该解决跨域问题啊。那你这个_method方法还能搞定需求吗,指定不能啊。那咋办啊?网上有很多答案,比如jsonp啊,$.getJSON啊等等,太多太多。但实际解决的问题,很少。比如jsonp他的返回格式需要callback,那么你封装json时就要加入callback,那么就毁坏了rest的格式。至于其他的,更别提了,不实用。

直接看代码,

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;

@Configuration
public class CrossDomain extends WebMvcConfigurerAdapter {
    @Override
    public void addCorsMappings(CorsRegistry registry) {
        registry.addMapping("/**").allowedOrigins("*")
                .allowedMethods("GET", "HEAD", "POST","PUT", "DELETE", "OPTIONS")
                .allowCredentials(false).maxAge(3600);
    }
}

直接把这个代码粘贴进去启动,就会完成跨域的安全性过滤。

原理还得看代码。以后有时间,我会和大家一起分析代码。先到这吧,谢谢。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/150124.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • iphone上的设备管理去哪里了_设备管理在哪里

    iphone上的设备管理去哪里了_设备管理在哪里正常是没有设备管理的选项的,当你的iPhone上有未信任程序(已经安装好的才行,正在下载/安装的都不算)时才会有这个选项设置>通用>设备管理

    2022年8月1日
    2
  • Double转BigDecimal并保留两位小数出现异常: java.lang.ArithmeticException: Rounding necessary

    Double转BigDecimal并保留两位小数出现异常: java.lang.ArithmeticException: Rounding necessary分享知识传递快乐Double转BigDecimal并保留两位小数出现异常:java.lang.ArithmeticException:Roundingnecessary。代码如下:publicstaticvoidmain(String[]args){Doubled=0.10;BigDecimalbigDecimal=newBigDecimal(d).setScale(2);System.out.println(bigD…

    2022年5月22日
    42
  • 汉罗塔的一般解决方法是什么_汉诺塔最快的方法

    汉罗塔的一般解决方法是什么_汉诺塔最快的方法这里主要是汉罗塔的递归求解n个盘子的总步数,和递归每一步盘子的步骤。

    2022年10月12日
    0
  • 沧州文化_沧州古代雅称

    沧州文化_沧州古代雅称沧洲东临渤海,北靠京津,有利的地形形成了四通八达的交通。沧州文化历史悠久,从战国时期沧州就因渤海而得名。沧州人民民风淳朴、勇敢、刚强加上历史的条件关系被人民称为“武建泱泱乎有表海熊风” 沧州的“武术之乡”已被四方的人知晓,那么沧州本土文化你又了解多少?本专题带您了解更多关于沧州文化的内容。农业特产沧州金丝小枣金丝小枣沧州红枣又称金丝小枣,沧县、献县、泊头交界处及其周围是金丝小枣生产地。其中…

    2022年8月18日
    10
  • checkbox选中和不选中 jqu_jquery怎么设置checkbox不选中?

    checkbox选中和不选中 jqu_jquery怎么设置checkbox不选中?jquery怎么设置checkbox不选中?jquery对checkbox进行操作需要使用prop()方法。1、设置不选中:$(“#my-checkbox”).prop(“checked”,false);2、设置选中:$(“#my-checkbox”).prop(“checked”,true);3、获取选中的状态:letstatus=$(“#my-checkbox”).prop(“check…

    2022年6月26日
    35
  • 向用户、竞争对手学习,是360的微创新之源 ( 转发自周鸿祎博客 )

    向用户、竞争对手学习,是360的微创新之源 ( 转发自周鸿祎博客 )写道现在,我说一说360的微创新,这是我这么多年来做互联网产品的一个总结,对我来说是方法论,希望能跟朋友们分享,切磋。我记得比尔-盖茨有一句话,大意是他愿意为微软一直服务下去,因为他喜欢跟一群聪明人打交道。跟聪明人在一起交流是快乐的,大家都是聪明人,大拿不少,即使拍砖也能拍出水平。闲话少叙,言归正传。但提前说明一下,这篇博文牵涉到一些产品功能,不感兴趣的同志可以掠过。2008年7月

    2022年7月26日
    6

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号