首页 > 其他分享 >CORS常用解决跨域的方法

CORS常用解决跨域的方法

时间:2023-07-19 09:26:54浏览次数:25  
标签:常用 http 跨域 CORS cors public localhost 请求

浏览器先询问服务器,当前网页所在的域名是否在服务器的许可名单之中,以及可以使用哪些HTTP动词和头信息字段。只有得到肯定答复,浏览器才会发出正式的XMLHttpRequest请求,否则就报错

 

前端发送Ajax请求

$("#test").click(function(){
    $.ajax({
        url : "http://localhost:8084/show.cors",
        type : "GET",
        success : function(result){
            // alert(result);
            console.log(result)
        }
    })
})

 

后端接收方式一

HttpServletResponse添加头信息

@RestController
public class CorsController {
​
    @RequestMapping(value = "/look.cors")
    public String look(HttpServletResponse response){
        response.addHeader("Access-Control-Allow-Origin","http://localhost:8083");
        //response.addHeader("Access-Control-Allow-Credentials","true");
        return "hello cors";
    }
}

 

后端接收方式二

使用Spring注解@CrossOrigin

@RestController
public class CorsController2 {
​
    @RequestMapping(value = "/show.cors")
    @CrossOrigin(origins = "http://localhost:8083")
    /* @CrossOrigin    也可配置在类上
     * 属性:
     * methods     表明服务器支持的跨域请求的方法
     * maxAge      预检的有效期
     */
    public String show(){
        return "hello cors";
    }
}

 

后端接收方式二

通过配置类解决跨域
使用HttpServletResponse对象或注解方式,需要在每个需要跨域的方法上都加上相应的注解或参数,我们想让所有的controller都添加跨域功能,我们可以通过实现WebMvcConfigurer接口来自定义跨域配置
WebMvcConfigurer是一个接口,提供很多自定义的拦截器,例如跨域设置、类型转化器等springMVC的配置

@Configuration
public class CorsConfig implements WebMvcConfigurer {
​
    /**
     * addMapping:配置可以被跨域的路径,可以任意配置,可以具体到直接请求路径。
     * allowedMethods:允许所有的请求方法访问该跨域资源服务器,如:POST、GET、PUT、DELETE等。
     * allowedOrigins :允许所有的请求域名访问我们的跨域资源,可以固定单条或者多条内容,如:”[http://www.aaa.com](http://www.aaa.com/)“,只有该域名可以访问我们的跨域资源。
     * allowedHeaders:允许所有的请求header访问,可以自定义设置任意请求头信息。
     * @param registry
     */
    @Override
    public void addCorsMappings(CorsRegistry registry) {
        registry.addMapping("/*.cors")
                .allowedOrigins("http://localhost:8083")
                .allowedMethods("POST","GET")
                .maxAge(1000);
    }
}

 

转载:https://blog.csdn.net/m0_59508658/article/details/119795644

标签:常用,http,跨域,CORS,cors,public,localhost,请求
From: https://www.cnblogs.com/zj68/p/17564669.html

相关文章

  • JSONP方式解决跨域
     <script>//封装一个jsonp函数functionjsonp({url,params,callback}){returnnewPromise((resolve,reject)=>{//定义回调函数window[callback]=function(data){resolve(data)}......
  • Mysql基础6-常用数据库函数
    一、字符串函数1、常见Mysql内置字符串函数concat(s1,s2,s3,...):字符串拼接,将s1,s2,s3...等拼接成一个字符串lower(str):将字符串str全部转为小写upper(str):将字符串str全部转为大写lpad(str,n,pad):左填充,将字符串pad对str的左边进行填充,达到n个字符串长度rpad(str,n,......
  • Java常用类
    Java常用类内部类概念:在一个类的内部再定义一个完整的类特点:1.编译后可以生成独立的字节码文件​ 2.内部类可以直接访问外部类的私有成员,而不破坏封装​ 3.可为外部类提供必要的功能组件//身体publicclassBody{privateStringname;//头部clas......
  • csv 压测读取常用策略
    如果想csv里的数据只使用一次     ================================== 遇到空行不结束 循环往复执行 -------------------------------------------------------------currentthread慎用,因为是随机的[bot]非常抱歉,我之前的回答中的"RandomOrder"......
  • es常用重要语句
    自定义分析器,分词器PUThttp://xxx.xxx.xxx.xxx:9200/test_index/{"settings":{"analysis":{"analyzer":{"char_edge_ngram_analyzer":{"tokenizer":"char_edge_ngram_tokenizer&q......
  • linux常用命令
    1.ps-ef|grep jarps命令的作用是显示进程信息的;|符号,是个管道符号,表示ps和grep命令同时执行;grep命令是查找(GlobalRegularExpressionPrint),能使用正则表达式搜索文本,然后把匹配的行显示出来;ps命令有一些参数:-e:显示所有进程-f:全格式-h:不显示标题-l:长......
  • CURL常用参数
    CURLcurl-XPOST-i'http://10.25.5.36/service/api/v1/province/registerSourceQuery'-H"Content-Type:application/json"-d'{"messageHeader":{"accessAccount":"43198521900","sign":"43198......
  • ffmpeg常用命令
    常用参数:主要参数:-i设定输入流-f设定输出格式-ss开始时间-t时间长度视频参数:-vframes设置要输出的视频帧数-b设定视频码率,默认为200Kbit/s-b:v视频码率-r设定帧速率,默认为25-s设定画面的宽与高-aspect设定画面的比例-vn不处理视频-vcodec设定视频编......
  • SpringBoot如何解决跨域问题
    什么是跨域跨域问题的本质是浏览器为了保证用户的一种安全拦截机制,它的初衷是为了保证用户的安全,防止恶意网站窃取数据。跨域三种情况在发起请求时,如果出现了以下情况中的任意一种,那么它就是跨域请求:协议不同,如http和https;域名不同;端口不同。也就是说,即使域名相......
  • 新手学c#常用到的语法记录
    ​C#是一种面向对象的编程语言。在面向对象的程序设计方法中,程序由各种相互交互的对象组成。相同种类的对象通常具有相同的类型,或者说,是在相同的class中。例如,以Rectangle(矩形)对象为例。它具有length和width属性。根据设计,它可能需要接受这些属性值、计算面积和显示细节......