关于跨域请求的问题-创新互联

解决方案:

网站的建设成都创新互联专注网站定制,经验丰富,不做模板,主营网站定制开发.小程序定制开发,H5页面制作!给你焕然一新的设计体验!已为主动防护网等企业提供专业服务。

1,原声ajax中提供了些属性

dataType:'jsonp'

但是我没测试过。

2:如果你项目没有用框架,servlet实现的,那在你需要跨域请求的那个servlet配置中增加如下配置(注意红色部分)


      abc
      xxx.xx.xx.xx.pressAgencyCtrl
       
           跨域访问
           accessControlAllowOrigin
           *
       

   

   
      abc
      /kyqq
   

3:如果你使用了框架,比如springmvc等,提供以下两种方式,创建一个filter,在filter中实现,如下

 view pla----------------------------------------------------------------------

  1. package xxxxxxxxxxxxxxx;

  2. import java.io.IOException;

  3. import javax.servlet.Filter;

  4. import javax.servlet.FilterChain;

  5. import javax.servlet.FilterConfig;

  6. import javax.servlet.ServletException;

  7. import javax.servlet.ServletRequest;

  8. import javax.servlet.ServletResponse;

  9. import javax.servlet.http.HttpServletResponse;

  10. public class Kuayu implements Filter {

  11.     @Override

  12.     public void init(FilterConfig filterConfig) throws ServletException {

  13.     }

  14.     @Override

  15.     public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)

  16.             throws IOException, ServletException {

  17.         //在此处实现跨域设置

  18.         HttpServletResponse httpResponse=(HttpServletResponse) response;

  19.         httpResponse.setHeader("Access-Control-Allow-Origin", "*");//设置所有的请求都可跨域请求

  20.         httpResponse.setHeader("Access-Control-Allow-Headers", "Authentication");//认证

  21.         chain.doFilter(request, httpResponse);

  22.     }

  23.     @Override

  24.     public void destroy() {

  25.     }

  26. }

  27. web.xml 配置

  28.     kuayuqingqiu

  29.     com.xx.xx.Kuayu

  30.     kuayuqingqiu

  31.     /*

-------------------------------------------------------------------------------------------

在spring框架4.2版本后,Spring给出了注解的方式解决问题。

即在Controller控制器中,在Controller注解上方添加@CrossOrigin注解。

最后来点名词解释:

Access-Control-Allow-Origin: 允许跨域访问的域,可以是一个域的列表,也可以是通配符"*"。这里要注意Origin规则只对域名有效,并不会对子目录有效。即http://foo.lwq/lxq/ 是无效的。但是不同子域名需要分开设置,这里的规则可以参照同源策略

Access-Control-Allow-Credentials: 是否允许请求带有验证信息,XMLHttpRequest请求的withCredentials标志设置为true时,认证通过,浏览器才将数据给脚本程序。

Access-Control-Expose-Headers: 允许脚本访问的返回头,请求成功后,脚本可以在XMLHttpRequest中访问这些头的信息

Access-Control-Max-Age: 缓存此次请求的秒数。在这个时间范围内,所有同类型的请求都将不再发送预检请求而是直接使用此次返回的头作为判断依据,非常有用,大幅优化请求次数

Access-Control-Allow-Methods: 允许使用的请求方法,以逗号隔开

Access-Control-Allow-Headers: 允许自定义的头部,以逗号隔开,大小写不敏感

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


网页题目:关于跨域请求的问题-创新互联
当前路径:http://azwzsj.com/article/ejihj.html