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)
上一篇 2022年6月17日 下午11:46
下一篇 2022年6月17日 下午11:46


相关推荐

  • Python 读取txt文件

    Python 读取txt文件1.首先将数据加载到Python中,看需要做哪些处理。2、从显示的内容可以看出,两个数字之间是以空格,作为分隔符,这里读成一行了。使用sep=””处理,打印查看效果。3、使用分隔符后,分成了三列。但是还有一个问题,第一行被当成了表头,解决方法:使用names=[]给每列命名~ok啦,现在可以实现读取txt文件的任务了~…

    2022年5月30日
    60
  • 夜深人静写算法(一)- 搜索入门

    夜深人静写算法(一)- 搜索入门搜索入门:深度优先搜索(记忆化、剪枝、IDA*)、广度优先搜索(A*、双向广搜)

    2022年7月26日
    10
  • rc522读卡器电路_stm32烧录工具

    rc522读卡器电路_stm32烧录工具在写这篇文章之前有写过一篇有关于PN532的文章,RC522与PN532在使用上都可以用来读写我们之前用的M1的IC卡,并且两款芯片有着同样都是应用于13.56MHz的非接触式通信芯片等诸多共通之处,查阅网上资料对于两者的区别个人认为RC522属于RFID,而PN532属于NFC,在功能上PN532包含了RC522的所功能(个人愚见),并且对于大部分需要量产使用或者学生党来说…

    2026年1月28日
    9
  • C++ 23种设计模式(6)-适配器模式

    C++ 23种设计模式(6)-适配器模式适配器模式将一个类的接口转换成客户希望的另外一个接口,使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。它包括类适配器和对象适配器,本文针对的是对象适配器。举个例子,在STL中就用到了适配器模式。STL实现了一种数据结构,称为双端队列(deque),支持前后两段的插入与删除。STL实现栈和队列时,没有从头开始定义它们,而是直接使用双端队列实现的。这里双端队列就扮演了适配器的角色。队列用到了它的后端插入,前端删除。而栈用到了它的后端插入,后端删除。假设栈和队列都是一种顺序容器,有两种操作:压入和弹出。

    2022年7月25日
    14
  • dataGrip 2021.4.12 激活码【在线破解激活】

    dataGrip 2021.4.12 激活码【在线破解激活】,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月17日
    56
  • Academic social networks: Modeling, analysis, mining and applications 2019翻译[通俗易懂]

    Academic social networks: Modeling, analysis, mining and applications 2019翻译[通俗易懂]Academicsocialnetworks:Modeling,analysis,miningandapplications摘要:在快速增长的学术大数据背景下,社交网络技术最近引起了学术界和工业界的广泛关注。学术社会网络的概念正是在学术大数据的背景下产生的,指的是由学术实体及其关系形成的复杂的学术网络。有大量的学术大数据处理方法来分析学术社交网络丰富的结构类型和相关信息。现在各种学术数据都很容易获取,这让我们更容易分析和研究学术社交网络。本研究调查了学术社交网络的背景、现状和趋势。我们首先

    2022年6月1日
    32

发表回复

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

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