前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >跨域问题:解决跨域的三种方案

跨域问题:解决跨域的三种方案

作者头像
全栈程序员站长
发布2021-06-22 19:39:27
6230
发布2021-06-22 19:39:27
举报

当前端页面与后台运行在不同的服务器时,就必定会出现跨域这一问题,本篇简单介绍解决跨域的三种方案,部分代码截图如下,仅供参考: 方式一:使用ajax的jsonp 前端代码

跨域问题:解决跨域的三种方案
跨域问题:解决跨域的三种方案

服务器代码

跨域问题:解决跨域的三种方案
跨域问题:解决跨域的三种方案

使用该方式的缺点:请求方式只能是get请求

方式二:使用jQuery的jsonp插件 插件下载网址:https://github.com/jaubourg/jquery-jsonp 前端代码

跨域问题:解决跨域的三种方案
跨域问题:解决跨域的三种方案

服务器代码

跨域问题:解决跨域的三种方案
跨域问题:解决跨域的三种方案

使用该方式的特点:与方式一相比,请求方式不只局限于get请求,还可以是post请求,但从服务器从获取的数据依然是jsonp格式

方式三:使用cors 前端代码

跨域问题:解决跨域的三种方案
跨域问题:解决跨域的三种方案

服务器代码

跨域问题:解决跨域的三种方案
跨域问题:解决跨域的三种方案

使用该方式的特点:与前两种方式相比,前端代码和未处理跨域前一样,即普通的ajax请求,但服务器代码添加了一段解决跨域的代码 // 设置:Access-Control-Allow-Origin头,处理Session问题 response.setHeader(“Access-Control-Allow-Origin”, request.getHeader(“Origin”)); response.setHeader(“Access-Control-Allow-Credentials”, “true”); response.setHeader(“P3P”, “CP=CAO PSA OUR”); if (request.getHeader(“Access-Control-Request-Method”) != null && “OPTIONS”.equals(request.getMethod())) { response.addHeader(“Access-Control-Allow-Methods”, “POST,GET,TRACE,OPTIONS”); response.addHeader(“Access-Control-Allow-Headers”, “Content-Type,Origin,Accept”); response.addHeader(“Access-Control-Max-Age”, “120”); }

cors高级使用:在springmvc中配置拦截器 创建跨域拦截器实现HandlerInterceptor接口,并实现其方法,在请求处理前设置头信息,并放行

跨域问题:解决跨域的三种方案
跨域问题:解决跨域的三种方案

在springmvc的配置文件中配置拦截器,注意拦截的是所有的文件

跨域问题:解决跨域的三种方案
跨域问题:解决跨域的三种方案

转载于:https://www.cnblogs.com/MaxElephant/p/10244481.html

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

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档