一、项目架构

二、项目内容

1.GlobalCrosConfig.java

  1. package com.config;
  2.  
  3. import org.springframework.context.annotation.Bean;
  4. import org.springframework.context.annotation.Configuration;
  5. import org.springframework.web.servlet.config.annotation.CorsRegistry;
  6. import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
  7.  
  8. @Configuration
  9. public class GlobalCrosConfig {
  10. @Bean
  11. public WebMvcConfigurer corsConfigurer() {
  12. return new WebMvcConfigurer() {
  13. @Override
  14. //重写父类提供的跨域请求处理的接口
  15. public void addCorsMappings(CorsRegistry registry) {
  16. //添加映射路径
  17. registry.addMapping("/**")
  18. //放行哪些原始域
  19. .allowedOrigins("*")
  20. //是否发送Cookie信息
  21. .allowCredentials(true)
  22. //放行哪些原始域(请求方式)
  23. .allowedMethods("GET","POST", "PUT", "DELETE")
  24. //放行哪些原始域(头部信息)
  25. .allowedHeaders("*")
  26. //暴露哪些头部信息(因为跨域访问默认不能获取全部头部信息)
  27. .exposedHeaders("Header1", "Header2");
  28. }
  29. };
  30. }
  31. }

2.CrossDomainController.java

  1. package com.controller;
  2.  
  3. import java.text.SimpleDateFormat;
  4. import java.util.Date;
  5.  
  6. import org.springframework.scheduling.annotation.EnableScheduling;
  7. import org.springframework.scheduling.annotation.Scheduled;
  8. import org.springframework.web.bind.annotation.RequestMapping;
  9. import org.springframework.web.bind.annotation.RestController;
  10.  
  11. @RestController
  12. @EnableScheduling
  13. @RequestMapping("/CrossDomainController")
  14. public class CrossDomainController {
  15. private static final SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss");
  16.  
  17. @Scheduled(fixedRate = 5000)
  18. @RequestMapping(params="cors")
  19. public void crossDomain(){
  20. System.out.println("现在时间:" + dateFormat.format(new Date()));
  21. }
  22. }

3.CrossStarter.java

  1. package com;
  2.  
  3. import org.springframework.boot.SpringApplication;
  4. import org.springframework.boot.autoconfigure.SpringBootApplication;
  5. import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
  6.  
  7. @SpringBootApplication(exclude= {DataSourceAutoConfiguration.class})
  8. public class CrossStarter {
  9. public static void main(String[] args) {
  10. SpringApplication.run(CrossStarter.class, args);
  11. }
  12.  
  13. }

4.pom.xml

  1. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  2. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  3. <modelVersion>4.0.0</modelVersion>
  4. <groupId>cross-domain</groupId>
  5. <artifactId>cross-domain</artifactId>
  6. <packaging>war</packaging>
  7. <version>0.0.1-SNAPSHOT</version>
  8. <name>cross-domain Maven Webapp</name>
  9. <url>http://maven.apache.org</url>
  10. <!-- 父级项目 -->
  11. <parent>
  12. <groupId>org.springframework.boot</groupId>
  13. <artifactId>spring-boot-starter-parent</artifactId>
  14. <version>2.1.0.RELEASE</version>
  15. <relativePath /> <!-- lookup parent from repository -->
  16. </parent>
  17. <dependencies>
  18. <!-- 测试 -->
  19. <dependency>
  20. <groupId>org.springframework.boot</groupId>
  21. <artifactId>spring-boot-starter-test</artifactId>
  22. <scope>test</scope>
  23. </dependency>
  24. <!-- springmvc -->
  25. <dependency>
  26. <groupId>org.springframework.boot</groupId>
  27. <artifactId>spring-boot-starter-web</artifactId>
  28. </dependency>
  29. <!-- jpa(持久层) -->
  30. <dependency>
  31. <groupId>org.springframework.boot</groupId>
  32. <artifactId>spring-boot-starter-data-jpa</artifactId>
  33. </dependency>
  34.  
  35. <!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
  36. <dependency>
  37. <groupId>javax.servlet</groupId>
  38. <artifactId>javax.servlet-api</artifactId>
  39. </dependency>
  40.  
  41. <!-- https://mvnrepository.com/artifact/org.codehaus.jackson/jackson-core-asl -->
  42. <dependency>
  43. <groupId>org.codehaus.jackson</groupId>
  44. <artifactId>jackson-core-asl</artifactId>
  45. <version>1.9.13</version>
  46. </dependency>
  47.  
  48. </dependencies>
  49. <!-- 编译 -->
  50. <build>
  51. <!-- 插件 -->
  52. <plugins>
  53. <!-- maven插件 -->
  54. <plugin>
  55. <groupId>org.springframework.boot</groupId>
  56. <artifactId>spring-boot-maven-plugin</artifactId>
  57. <configuration>
  58. <source>1.8</source>
  59. <target>1.8</target>
  60. <encoding>UTF-8</encoding>
  61. </configuration>
  62. </plugin>
  63. </plugins>
  64. </build>
  65. </project>

5.application.properties

  1. server.port:8888

springboot跨域请求接口示例的更多相关文章

  1. Fetch+SpringBoot跨域请求设置

    两种方法从SpringBoot的方向解决跨域问题 今天搭建博客的时候,尝试性的传递数据,发现浏览器报了这个错误 -blocked by CORS policy: No 'Access-Control- ...

  2. springboot跨域请求

      首页 所有文章 资讯 Web 架构 基础技术 书籍 教程 Java小组 工具资源 SpringBoot | 番外:使用小技巧合集 2018/09/17 | 分类: 基础技术 | 0 条评论 | 标 ...

  3. Thinkphp5.1允许uni-app的H5跨域请求接口解决方法

    情景: uni-app使用vue框架开发混合APP,虽然APP或者小程序没有跨域,但希望就是写完这个既有H5,又有APP,小程序等,所以能通过后端解决跨域最好.但是不知道是vue的原因还是什么,在PH ...

  4. 关于解决Springboot跨域请求的方法

    前言 最近在项目中,由于前后分离,前台项目和后台项目部署的不在一台服务器,就产生了跨域的问题,特此记录下 正文 正常情况下,如果提示: 就可以判断是没有解决跨域的问题了. 在SSM中,我曾经这样解决过 ...

  5. springboot跨域请求设置

    当它请求的一个资源是从一个与它本身提供的第一个资源的不同的域名时,一个资源会发起一个跨域HTTP请求(Cross-site HTTP request).比如说,域名A ( http://domaina ...

  6. jsonp跨域请求实现示例

    网上看了很多关于jsonp的资料,发现在本机运行后实现不了,有的是有错漏,有的是说的比较含糊,接合自己的情况,整了一个可运行的示例: 前言: ajax请求地址:http://192.168.1.102 ...

  7. Django-Ajax及跨域请求

    Ajax准备知识:json 什么是json? 定义: JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式.它基于 ECMAScript (w ...

  8. Django框架 之 跨域请求伪造

    Django框架 之 跨域请求伪造 浏览目录 同源策略与Jsonp 同源策略 Jsonp jQuery对JSONP的实现 CORS 简介 两种请求 同源策略与Jsonp 同源策略 同源策略(Same ...

  9. js跨域请求解决方案

    什么是跨域? 跨域是指一个域下的文档或脚本试图去请求另一个域下的资源,这里跨域是广义的. 广义的跨域: 1.) 资源跳转: A链接.重定向.表单提交 2.) 资源嵌入: <link>.&l ...

随机推荐

  1. MongoDB 3.2 升级至 3.4.6

    MongoDB 升级测试步骤:1.MongoDB版本升级顺序3.2->3.4->3.6->4.0 不能跨版本升级2.升级到3.4后,您不能降级到3.2.7或更早版本.您只能降级到3. ...

  2. hibernate字段值无法保存

    通过hibernate对Blogstorage对象进行保存操作,filepath属性的值无论设置多少遍都保存不进去 后来发现是 Blogstorage.hbm.xml 里面根本没有配置filepath ...

  3. Python基础笔记:字符串和编码

    1. 当处理文本时,需要现将文本转换为文字,一个字节为8位儿,一个字节最高表示整数255(1111 1111),对应255个状态: 最为人熟知的是ASCii码,ASCii码含128个状态,满足了英文编 ...

  4. idea中使用maven运行wordcount代码

    1.创建maven项目 pom文件: <?xml version="1.0" encoding="UTF-8"?> <project xmln ...

  5. 一百零六、SAP的OOP面向对象编程,OO-ALV的简介

    面向对象编程,如图 基本概念: 1.对象(Object)是一个现实实体的抽象.一个对象可被认为是一个把数据(属性)和程序(方法)封装在一起的实体,这个程序产生该对象的动作或对它接受到的外界信号的反应. ...

  6. VIJOS-P1282 佳佳的魔法照片 排序

    Description 一共有n(n≤20000)个人(以1--n编号)向佳佳要照片,而佳佳只能把照片给其中的k个人.佳佳按照与他们的关系好坏的程度给每个人赋予了一个初始权值W[i].然后将初始权值从 ...

  7. Oozie笔记

    简介 Oozie 是用于 Hadoop 平台的开源的工作流调度引擎. 用于管理 Hadoop 属于web应用程序, 由 Oozie client 和 Oozie Server 两个组件构成. Oozi ...

  8. Z-function

    用更容易理解的方法处理出 s[l----r]=s[1----r-l+1] 常数比KMP略大,时间复杂度\(O(n)\),方法和manacher很像 #include<bits/stdc++.h& ...

  9. 51nod 1287: 加农炮 好题啊好题

    1287 加农炮 题目来源: Codility 基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题  收藏  关注 一个长度为M的正整数数组A,表示从左向右的地形高度. ...

  10. OnPaint中画图遇到的问题

    在OnPaint函数中有CPaintDC dc1(this);这句话,在画图时,千万不要把它去掉,否则会造成消息队列阻塞.例如定时器.Invalidate()等都会失效. 造成这种现象的原因是: CP ...