美文网首页
ajax服务器跨域问题

ajax服务器跨域问题

作者: trimcode | 来源:发表于2019-12-11 14:40 被阅读0次

本文章只是一个简单的记录,具体可观看慕课网视频(转载)

cross.png

被调用方解决方案

1、应用服务器添加 Filter(第一种方案)

@SpringBootApplication
public class AjaxserverApplication {

    public static void main(String[] args) {
        SpringApplication.run(AjaxserverApplication.class, args);
    }

    @Bean
    public FilterRegistrationBean registerFilter() {
        
        FilterRegistrationBean bean = new FilterRegistrationBean();
        
        bean.addUrlPatterns("/*");
        bean.setFilter(new CrosFilter());
        
        return bean ;
    }
}

public class CrosFilter implements Filter {

    @Override
    public void init(FilterConfig filterConfig) throws ServletException {
        // TODO Auto-generated method stub

    }

    @Override
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
            throws IOException, ServletException {
        // TODO Auto-generated method stub

        HttpServletResponse res = (HttpServletResponse) response;
        
        HttpServletRequest req = (HttpServletRequest) request;
        
        String origin = req.getHeader("Origin");
        
        if (!org.springframework.util.StringUtils.isEmpty(origin)) {
            //带cookie的时候,origin必须是全匹配,不能使用*
            res.addHeader("Access-Control-Allow-Origin", origin);           
        }
        
        res.addHeader("Access-Control-Allow-Methods", "*");
        
        String headers = req.getHeader("Access-Control-Request-Headers");
        
        // 支持所有自定义头
        if (!org.springframework.util.StringUtils.isEmpty(headers)) {
            res.addHeader("Access-Control-Allow-Headers", headers);         
        }
        
        res.addHeader("Access-Control-Max-Age", "3600");
        
        // enable cookie
        res.addHeader("Access-Control-Allow-Credentials", "true");      
    
            chain.doFilter(request, response);
    }

    @Override
    public void destroy() {
        // TODO Auto-generated method stub
    }
}

2、http服务器配置(第二种方案)


nginx.png
apache.png

调用方解决方案

1、http服务器配置


nginx.png
apache.png

注:http服务器是部署的中间件
转载慕课网视频

相关文章

  • 解决ajax跨域问题

    Jsonp解决ajax跨域问题 CORS解决ajax跨域问题

  • js---跨域

    1.什么是跨域 我们经常会在页面上使用ajax请求访问其他服务器的数据,此时,客户端会出现跨域问题. 跨域问题是由...

  • 2020-04-03

    1.如何解决跨域问题?理解跨域的概念:协议、域名、端口都相同才同域,否则都是跨域出于安全考虑,服务器不允许ajax...

  • Http浅析【2】——ajax跨域问题

    视频参考:ajax跨域完全讲解 本文精华版:【综合】ajax跨域问题 什么是跨域问题 简单来讲,当前台调用后台,如...

  • 跨域上传图片并预览

    跨域上传文件 之前解决跨域问题都是使用的JQuery的JSONP类型的Ajax请求,JSONP原理是让服务器把数据...

  • 前端跨域

    什么是ajax跨域 ajax跨域的原理 ajax出现请求跨域错误问题,主要原因就是因为浏览器的“同源策略”,可以参...

  • 实用程序库

    解决ajax跨域方法: jsonp 服务器代理 跨域资源共享 一、moment momentjs官网[https:...

  • ajax跨域请求

    ajax跨域请求(jsonp) 利用JSONP解决AJAX跨域问题的原理与jQuery解决方案JSONP jQue...

  • window.postMessage解决前端ajax跨域问题

    postMessage畅快解决跨域问题 本文主要是记录使用window.postMessage解决ajax跨域问题...

  • 跨域

    服务器不允许跨域,只能使用$.ajax jsonp $.ajax({ url: `https://api.d...

网友评论

      本文标题:ajax服务器跨域问题

      本文链接:https://www.haomeiwen.com/subject/zajogctx.html