服务器端解决跨域问题的三种方法

本地开发环境请求服务器接口跨域的问题(vue的问题) axios的封装,主要是用来帮我们进行请求的拦截和响应的拦截。在请求的拦截中我们可以携带userToken,post请求头、qs对post提交数据的序列化等。在响应的拦截中,我们可以进行根据状态码来进行错误的统一处理等等。axios接口的统一管理,是做项目时必须的流程。这样可以方便我们管理我们的接口,在接口更新时我们不必再返回到我们的业务代码中去修改接口。本地开发项目请求服务器接口的时候,因为客户端的同源策略,导致了跨域的问题。我们在1出设置了允许本地跨域,在2处,要注意我们访问接口时,写的是。 阅读详情

跨域是指html文件所在的服务器与ajax请求的服务器是不同的ip+port,例如: 
- ‘192.168.1.1:8080’ 与 ‘192.168.1.2:8080’是不同的域。 
- ‘192.168.1.1:8080’ 与 ‘192.168.1.1:8081’是不同的域。

解决此类问题的方法很多,有需要客户端和服务端都要更改的,例如jsonp,iframe等等;有只需要客户端更改的,这种情况只能出现在hybrid app开发中,即通过调用native方法来进行网络请求;有只需要服务端配置的,下面介绍3种服务端配置的方法。

 

第一种

如果您使用的mvc框架是spring4.2以上的话,一个@CrossOrigin就可以搞定。将@CrossOrigin加到Controller上,那么这个Controller所有的请求都是支持跨域的,代码如下:

@Controller
@CrossOrigin
public class BaseController {

将@CrossOrigin加到请求方法上,那么这个请求是支持跨域的,代码如下:

 

@CrossOrigin
    @RequestMapping("/greeting")
    public @ResponseBody String getCoding(@RequestParam(required=false, defaultValue="World") String name) {

更详细的@CrossOrigin介绍,请参看https://spring.io/guides/gs/rest-service-cors/

 

第二种

全局配置,也需要spring4.2以上。

  @Bean
    public WebMvcConfigurer corsConfigurer() {
        return new WebMvcConfigurerAdapter() {
            @Override
            public void addCorsMappings(CorsRegistry registry) {
                registry.addMapping("/greeting-javaconfig").allowedOrigins("http://localhost:9000");
            }
        };
    }

.addCorsMappings()中的参数代表支持跨域的url,.allowedOrigins()中的参数代表可以访问该接口的域名,设置为”*”可支持所有域。

第三种

这种方法就跟框架无关了,需要两个jar包,点击https://download.youkuaiyun.com/download/james_wade63/9451024进行下载,两个jar包可以放的程序里,也可以放到tomcat中,然后将下面的配置写到web.xml中就可以了

< filter >   

     < filter-name > CORS </ filter-name >   

     < filter-class > com.thetransactioncompany.cors.CORSFilter </ filter-class >   

    < init-param >   

                                 < param-name > cors.allowOrigin </ param-name >   <!--配置授信的白名单的域名!-->

         < param-value > * </ param-value >   

     </ init-param >   

     < init-param >   

      < param-name > cors.supportedMethods </ param-name >   

         < param-value > GET, POST, HEAD, PUT, DELETE </ param-value >   

     </ init-param >   

     < init-param >   

      < param-name > cors.supportedHeaders </ param-name >   

         < param-value > Accept, Origin, X-Requested-With, Content-Type, Last-Modified </ param-value >   

     </ init-param >   

     < init-param >   

         < param-name > cors.exposedHeaders </ param-name >   

         < param-value > Set-Cookie </ param-value >   

     </ init-param >   

     < init-param >   

         < param-name > cors.supportsCredentials </ param-name >   

         < param-value > true </ param-value >   

     </ init-param >   

</ filter >   

< filter-mapping >   

     < filter-name > CORS </ filter-name >   

     < url-pattern > /* </ url-pattern >   

</ filter-mapping >   

 

 

转自:

https://blog.youkuaiyun.com/james_wade63/article/details/50772041

 

JMeter脚本录制-快速上手篇 有的项目应用场景下,压测时,需要考虑带宽因素,压测不只是压测接口,静态资源也要一起压测。一般来说,静态资源比较多,如果一个个手工去写请求,是比较繁琐的,此时,可以使用Jmeter的脚本录制功能。 步骤1,创建脚本录制模版。 JMeter菜单:文件>模版,下拉选择到Recording,点击“Create”按钮; 填写录制参数: hostToRecord:填写要录制的主机域名,例如,我们这里填入:www.baidu.com schemeToRecord:填写要录制的模式,例如,htt... 阅读详情

相关推荐

数字IC设计——功耗分析

功耗是数字IC芯片的一个重要指标

知识,既贵,又便宜。 9360

服务端(后端),前端支持跨域请求

服务端(后端),前端支持跨域请求 报错: Access to XMLHttpRequest at 'localhost:8080/ rom origin ‘null’ has been blocked by CORS policy: 原因:我的前端项目没有支持跨域请求; 解决: 1.前端项目支持跨域请求:如果部署在apache服务器上,要在apache服务器上开启允许跨域请求,我安装教程做了,但是没有成功,大牛们可以自己搜下 apache(或者其他的服务器)开启跨域请求的方法 我是用的XMLRequest发

qq_43140505的博客 4149

私有云平台搭建——OpenStack

私有云平台搭建——OpenStack 搭建过程

2301_79739036的博客 3089

跨域问题

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34205826的博客 326

import-im6.q16: attempt to perform an operation not allowed by the security policy `PS‘ @ error/cons

这六个 policy 是使用 XML 格式描述的安全策略。要将其中的限制注释掉,在每个 policy 开始和结束的标记之间添加注释标记“

m0_60657960的博客 1908

用Multisim和74HC系列芯片,手把手教你搭建一个能“算数”的简易CPU模型

本文详细介绍了如何使用Multisim仿真软件和74HC系列芯片搭建一个简易CPU模型,重点解析了74HC194寄存器和74HC283加法器的核心功能与连接方法。通过分步图解和实战调试,帮助读者理解CPU工作原理,掌握数字电路设计的基本技能,适合计算机组成原理初学者和电子爱好者实践学习。

weixin_26843605的博客 139

前端如何解决跨域问题(大概)

【代码】前端如何解决跨域问题(大概)

weixin_67271921的博客 615

课程复习---分析空间数据的细胞空间关系(python版本的mistyR)

课程复习---分析空间数据的细胞空间关系(python版本的mistyR)

weixin_53637133的博客 1221

服务端允许跨域

跨域 cors http

c785795635的专栏 363

别再手动改文献了!手把手教你定制Mendeley的GB/T 7714-2005引用格式(附常见问题修复)

本文详细指导如何定制Mendeley的GB/T 7714-2005引用格式,解决科研文献管理中的常见问题。通过深度解析Mendeley样式编辑器,精准控制作者显示规则、出版社信息精简及期刊页码处理,实现参考文献一键合规。附常见问题修复和实战调试方法,大幅提升学术写作效率。

weixin_26833503的博客 374

YOLOv11改进 | 网络结构代码逐行解析(一) | 项目目录构造分析

Hello,大家好这次给大家带来的不是改进,是整个YOLOv11项目的分析整个系列大概会更新5-7篇左右的文章从项目的目录到每一个功能代码的都会进行详细的讲解,下面开始进行YOLOv11逐行解析的第一篇——项目目录构造分析开头之前顺便给大家推荐一下我的专栏,本专栏更新上百余篇YOLOv11改进机制手把手教你添加到网络结构中,同时针对拿到模型不知道如何修改,不知道如何发表论文的读者进行针对性的文章介绍,本专栏质量分平均分96分,内容质量完全有所保证。

Snu77的博客 1万+

跨域服务器不稳定,服务器端解决跨域问题的三种方法

转载自:https://blog.youkuaiyun.com/james_wade63/article/details/50772041html跨域是指html文件所在的服务器与ajax请求的服务器是不一样的ip+port,例如:- ‘192.168.1.1:8080’ 与 ‘192.168.1.2:8080’是不一样的域。- ‘192.168.1.1:8080’ 与 ‘192.168.1.1:8081’是...

weixin_42339801的博客 582

AI上推荐 之 NeuralCF与PNN模型(改变特征交叉方式)

1. 前言 随着信息技术和互联网的发展, 我们已经步入了一个信息过载的时代,这个时代,无论是信息消费者还是信息生产者都遇到了很大的挑战: 信息消费者:如何从大量的信息中找到自己感兴趣的信息? 信息生产者:如何让自己生产的信息脱颖而出, 受到广大用户的关注? 为了解决这个矛盾, 推荐系统应时而生, 并飞速前进,在用户和信息之间架起了一道桥梁,一方面帮助用户发现对自己有价值的信息, 一方面让信息能够展现在对它感兴趣的用户前面。 推荐系统近几年有了深度学习的助推发展之势迅猛, 从前深度学习的传统推荐模型(协

Miracle8070 1万+

腾讯程序员带你使用【java web】服务器端解决跨域问题

服务器端解决跨域问题的三种方法 跨域是指html文件所在的服务器与ajax请求的服务器是不同的ip+port,例如: ‘192.168.1.1:8080’ 与 ‘192.168.1.2:8080’是不同的域。 ‘192.168.1.1:8080’ 与 ‘192.168.1.1:8081’是不同的域。 解决此类问题的方法很多,有需要客户端和服务端都要更改的,例如jsonp,iframe等等;有只需要客户端更改的,这种情况只能出现在hybrid app开发中,即通过调用native方法来进行网络请求;有

weixin_53341657的博客 276

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

服务端代理实现跨域java_Java服务器端跨域问题解决方案

这篇文章主要介绍了java服务器端跨域问题解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下现在很多开发的 API 都支持 ajax 直接请求,这样就会导致跨域的问题,解决跨域的问题一方面可以从前端,另一方面就是服务器端。一、Controller类名上方添加@CrossOrigin 注解通过此方式注解则Controller中的所有通过@Req...

weixin_39553705的博客 268

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

上一篇: 谷歌浏览器“无法添加来自此网站的应用、扩展程序和应用脚本”的最简单办法
下一篇: Quartz 定时器的时间设置
触电山猫
博客等级 码龄10年 11粉丝 49原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值