zoukankan      html  css  js  c++  java
  • ajax跨域问题及解决

    overview

    ajax是一种创建交互式网页应用的网页开发技术,是一种用于创建快速动态网页的技术,通过在后台与服务器进行少量数据交换。而ajax的跨域问题则是请求了其他项目的接口地址,当协议、子域名、主域名、端口号中任意一个不一样的时候,都算不同的域。不同域之间的相互请求,就叫跨域

    基于安全的考虑,ajax只能访问本地的资源,而不能跨域访问,常出现跨域访问的几种情况:

    实现:

    处理ajax跨域的问题主要从ajax本身和服务器端去考虑,这里主要介绍服务器端应该怎样去解决,ajax本身的话可以考虑JSONP技术。

    为了不出现跨域的问题,我们应该在服务器端往响应头里添加Access-Control-Allow-Origin

    response.addHeader("Access-Control-Allow-Origin", "*");

    而在实际的项目当中的话,我们应该考虑配置一个拦截器

    <mvc:interceptors>
            <mvc:interceptor>
                <mvc:mapping path="/**" />
                <bean class="com.whcd.app.interceptor.CCInterceptor"/>
            </mvc:interceptor>
    </mvc:interceptors>

    然后再写一个类去继承HandlerInterceptorAdapter ,

    package com.whcd.app.interceptor;
    
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    import org.springframework.web.servlet.ModelAndView;
    import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
    
    public class CCInterceptor extends HandlerInterceptorAdapter {
    
        @Override
        public void afterCompletion(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, Exception arg3)
                throws Exception {
            // TODO Auto-generated method stub
    
        }
    
        @Override
        public void postHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, ModelAndView arg3)
                throws Exception {
    
        }
    
        @Override
        public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object arg2) throws Exception {
            // TODO Auto-generated method stub
            response.addHeader("Access-Control-Allow-Origin", "*");
            return true;
    
        }
    
    }





  • 相关阅读:
    smarty基础
    phpcms 内容模块PC标签调用
    phpcms v9中的$CATEGORYS栏目数组
    PHP如何实现验证码
    PHP生成一个不重复随机数组的封装方法
    简单实现php文件管理
    PHP-----作业:查询数据,在页面上显示
    PHP-----设计模式六大原则
    PHP-----静态
    PHP-----面向对象的设计模式:工厂模式例题
  • 原文地址:https://www.cnblogs.com/asen0713/p/6481401.html
Copyright © 2011-2022 走看看