Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >vue.js跨域_vueaxios跨域请求

vue.js跨域_vueaxios跨域请求

作者头像
全栈程序员站长
发布于 2022-11-10 10:23:10
发布于 2022-11-10 10:23:10
4.1K00
代码可运行
举报
运行总次数:0
代码可运行

大家好,又见面了,我是你们的朋友全栈君。

最近公司能的项目使用前后端分离,前端开发请求接口数据的时候碰到了跨域问题,解决方案如下

一、SimpleCORSFilter工具类

在项目Util类中新建类SimpleCORSFilter 实现Filter接口

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
package com.how2java.tmall.util;

import java.io.IOException;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class SimpleCORSFilter implements Filter{
    private boolean isCross = false;

    @Override
    public void destroy() {
        isCross = false;
    }

    @Override
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
            throws IOException, ServletException {
        if (isCross) {
            HttpServletRequest httpServletRequest = (HttpServletRequest) request;
            HttpServletResponse httpServletResponse = (HttpServletResponse) response;
            System.out.println("拦截请求: " + httpServletRequest.getServletPath());
            httpServletResponse.setHeader("Access-Control-Allow-Origin", "*");
            httpServletResponse.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");
            httpServletResponse.setHeader("Access-Control-Max-Age", "0");
            httpServletResponse.setHeader("Access-Control-Allow-Headers",
                    "Origin, No-Cache, X-Requested-With, If-Modified-Since, Pragma, Last-Modified, Cache-Control, Expires, Content-Type, X-E4M-With,userId,token");
            httpServletResponse.setHeader("Access-Control-Allow-Credentials", "true");
            httpServletResponse.setHeader("XDomainRequestAllowed", "1");
        }
        chain.doFilter(request, response);
    }

    @Override
    public void init(FilterConfig filterConfig) throws ServletException {
        String isCrossStr = filterConfig.getInitParameter("IsCross");
        isCross = isCrossStr.equals("true") ? true : false;
        System.out.println(isCrossStr);
    }

}

二、web.xml处理跨域请求

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  <filter>  
    <filter-name>SimpleCORSFilter</filter-name>  
    <filter-class>com.how2java.tmall.util.SimpleCORSFilter</filter-class>  
    <init-param>  
      <param-name>IsCross</param-name>  
      <param-value>true</param-value>  
    </init-param>  
  </filter>  
  <filter-mapping>  
    <filter-name>SimpleCORSFilter</filter-name>  
    <url-pattern>/*</url-pattern> 
  </filter-mapping>

三、spring-4.0的

springMVC.xml配置

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<mvc:cors>  
        <mvc:mapping path="/**"  
                       allowed-origins="*"  
                       allowed-methods="POST, GET, OPTIONS, DELETE, PUT"  
                       allowed-headers="Content-Type, Access-Control-Allow-Headers, Authorization, X-Requested-With"  
                       allow-credentials="true" />  
    </mvc:cors>

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年9月27日 ,如有侵权请联系 cloudcommunity@tencent.com 删除

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

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

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Java + Ajax跨域解决方案整理
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/172568.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/23
3380
前后端分离ssm配置跨域
前后端分离开发需要跨域,之前只会pringboot跨域,只需要一个配置类即可,下面记录一下ssm的配置
道可道非常道
2019/06/22
6560
前后端分离ssm配置跨域
Spring的学习笔记(十五)——SSM 解决接口跨域问题
什么是跨域? 跨域是指一个域下的文档或脚本试图去请求另一个域下的资源,这里跨域是广义的。
不愿意做鱼的小鲸鱼
2022/09/26
7310
java后台设计简单的json数据接口,设置可跨域访问,前端ajax获取json数据
在开发的过程中,有时候我们需要设计一个数据接口。有时候呢,数据接口和Web服务器又不在一起,所以就有跨域访问的问题。 第一步:简单的设计一个数据接口。 数据接口,听起来高大上,其实呢就是一个简单的Serlvlet,在有get的请求的时候,返回我们要提供的数据就可以。现在JSON数据格式已经很普遍,因为很方便,所以我们做一个json数据的接口。直接看代码 先建立一个实体类,就是包装我们的数据的 bean/kapian.java package bean; public class kapian { /
ShenduCC
2018/04/27
3.8K0
java后台设计简单的json数据接口,设置可跨域访问,前端ajax获取json数据
Spring Boot 实现跨域的 5 种方式,总有一种适合你,建议收藏!!
点击关注公众号,Java干货及时送达 一、为什么会出现跨域问题 出于浏览器的同源策略限制。同源策略(Sameoriginpolicy)是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能可能都会受到影响。可以说Web是构建在同源策略基础之上的,浏览器只是针对同源策略的一种实现。 同源策略会阻止一个域的javascript脚本和另外一个域的内容进行交互。所谓同源(即指在同一个域)就是两个页面具有相同的协议(protocol),主机(host)和端口号(port) 二、什么是
Java技术栈
2022/07/26
4.8K0
Spring Boot 实现跨域的 5 种方式,总有一种适合你,建议收藏!!
vue跨域解决方案 简书_springboot允许跨域
1.方法一:@CrossOrigin 注意: 1、springMVC的版本要在4.2或以上版本才支持@CrossOrigin 2、非@CrossOrigin没有解决跨域请求问题,而是不正确的请求导致无法得到预期的响应,导致浏览器端提示跨域问题。 3、在Controller注解上方添加@CrossOrigin注解后,仍然出现跨域问题,解决方案之一就是:在@RequestMapping注解中没有指定Get、Post方式,具体指定后,问题解决。其中@CrossOrigin中的2个参数:origins : 允许可访问的域列表 maxAge:准备响应前的缓存持续的最大时间(以秒为单位)。可以配置在Controller上 也可以配置在方法上。
全栈程序员站长
2022/09/29
3060
JSP中的Servlet及Filter
asp.net中,如果开发人员想自己处理http请求响应,可以利用HttpHandler来满足这一要求;类似的,如果要拦截所有http请求,可以使用HttpMoudle。java的web开发中,也有类似的处理机制,与HttpHandler应对的是HttpServlet,与HttpModule对应的则是Filter。 一、HttpServlet 先看一个简单的示例: 1 package com.cnblogs.yjmyzz.servlet; 2 3 import java.io.IOException
菩提树下的杨过
2018/01/24
2.2K0
filter控制缓存WebCache
上篇文章简述了一下使用Filter对url进行控制,这篇文章说一下缓存的控制。当然了以此类推的可以得到filter还可以对其他的内容进行控制,比如以前写的《通过java filter设置字符集编码》。这次东西的实现所依靠的就是filter的特性,那么它有什么特性呢?
the5fire
2019/02/28
4430
Java工具类- 跨域工具类
原本Spring MVC项目添加跨域: 在web.xml文件中配置: <!-- cors解决跨域访问问题 --> <filter> <filter-name>cors</filter-name> <filter-class>com.wazn.learn.util.SimpleCORSFilter</filter-class> </filter> <filter-mapping> <filter-name>cors</filt
二十三年蝉
2018/03/29
1.4K0
JavaWeb-过滤器Filter学习(二)设置全站编码与设置页面缓存
以前我们设置servlet的request和response的编码需要在每个servlet都设置,如果Servlet很多,显得很麻烦,现在我们可以用过滤器很简单的实现这个功能。 还有页面缓存,如果我们的网页是静态的,图片和内容基本上很少变化或者不变化的,我们就可以告诉客户端这个页面你缓存多久~以达到节省流量的目的。
谙忆
2021/01/21
4670
JavaWeb-过滤器Filter学习(二)设置全站编码与设置页面缓存
[javaweb]Java过滤器与包装设计模式的实用案例.
在filter中可以得到代表用户请求和响应的request、response对象,因此在编程中可以使用Decorator(装饰器)模式对request、response对象进行包装,再把包装对象传给目标资源,从而实现一些特殊需求。 一、Decorator设计模式 1.1、Decorator设计模式介绍   当某个对象的方法不适应业务需求时,通常有2种方式可以对方法进行增强: 编写子类,覆盖需增强的方法。 使用Decorator设计模式对方法进行增强。   在阎宏博士的《JAVA与模式》一书中开头是这样描述装
一枝花算不算浪漫
2018/05/18
1.1K0
cors解决Web跨域访问问题
首先了解一下什么是跨域以及解决的几种常见方式。 跨域,指的是浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,是浏览器施加的安全限制。 所谓同源是指,域名,协议,端口均相同。 举例: 相对于
二十三年蝉
2018/02/28
1.6K0
cors解决Web跨域访问问题
跨域的常见问题和解决方案
No 'Access-Control-Allow-Origin' header is present on the requested resource The response had HTTP status code 405
chuchur
2022/10/25
5470
springmvc【问题1】跨域
简单的说即为浏览器限制访问A站点下的js代码对B站点下的url进行ajax请求。比如说,前端域名是www.abc.com,那么在当前环境中运行的js代码,出于安全考虑,访问www.xyz.com域名下的资源,是受到限制的。现代浏览器默认都会基于安全原因而阻止跨域的ajax请求,这是现代浏览器中必备的功能,但是往往给开发带来不便。特别是对我这样后台开发人员来讲,这个事情简直神奇。 但跨域的需求却一直都在,为了跨域,勤劳勇敢的程序猿们想出了许许多多的方法,例如,jsonP、代理文件等等。但这些做法增加了许多不必要的维护成本,而且应用场景也有许多限制,例如jsonP并非XHR,所以jsonP只能使用GET传递参数。更详细的资料可以看这里 Web应用跨域访问解决方案汇总
用户5640963
2019/07/26
9360
使用过滤器解决中文乱码问题
在Web.xml文件中,配置过滤器,其过滤器的URL映射可以使用正则表达式进行配置,如实例中使用“/*”来匹配所有请求。
卡尔曼和玻尔兹曼谁曼
2019/01/25
1.4K0
JavaWeb-过滤器Filter学习(三)实现用户的自动登录与IP黑名单过滤
实现用户的自动登录: 解决方案: 设置一个全站拦截的过虑器。 在此过虑器中,读取用户带过来的Cookie信息,然后从中读取用户的用户名和密码,自动帮助用户登录。 即可实现自动登录功能。
谙忆
2021/01/21
1.1K0
JavaWeb-过滤器Filter学习(三)实现用户的自动登录与IP黑名单过滤
大数据必学Java基础(一百一十一):过滤器注解应用和开发案例
​过滤器注解应用和开发案例一、过滤器注解应用@WebFilter属性package com.lanson.filter;import javax.servlet.*;import javax.servlet.annotation.WebFilter;import javax.servlet.annotation.WebInitParam;import java.io.IOException;/** * @Author: Lansonli * @Description: MircoMessage:Mark_
Lansonli
2022/12/23
3580
大数据必学Java基础(一百一十一):过滤器注解应用和开发案例
Servlet过滤器,Servlet过滤器创建和配置
第一:Servlet的过滤器的创建和配置,创建一个过滤器对象需要实现javax.servlet.Filter接口,同时实现Filter的3个方法。        第一方法是过滤器中的init()方法用
别先生
2017/12/29
9460
Servlet过滤器,Servlet过滤器创建和配置
Servlet总结四(过滤器)
文章目录 1. Servlet总结四(过滤器的使用) 1.1. 简介 1.2. 过滤器的实现 1.2.1. 重点 1.2.2. 简单的例子 1.2.3. 过滤器的设置 1.2.3.1. 注意 1.2.4. 初始参数的设置和获取 1.2.4.1. 设置初始值 1.2.4.2. 获取初始参数的值 1.2.5. 设置触发的时机 Servlet总结四(过滤器的使用) 简介 在容器调用Servlet的service()的方法钱,Servlet其实并不会知道有请求的到来,而在service()方法执行后,容器真正
爱撒谎的男孩
2019/12/31
3920
使用自定义模板为Myeclipse添加新建Filter的功能
第一步:单击windowpreference菜单项,在打开的窗口中,依次展开Java、Editor、Templates列表项,然后在打开的Templates面板中,单击【New】按钮 使用这个模板非常简单,只要要新建一个class,然后将里面的内容全部删除,接着在其中输入“filter”,就会显示提示信息。
Erwin
2019/12/31
8400
推荐阅读
相关推荐
Java + Ajax跨域解决方案整理
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验