如何让服务器支持跨域呢?

如何让服务器本身支持跨域请求呢?

如果服务器是apache

(1)修改http服务的配置文件:C:\wamp\bin\apache\Apache2.4.4\conf\httpd.conf

把LoadModule headers_module modules/mod_headers.so 前面的注释删除.

(2)添加Header set Access-Control-Allow-Origin *

<Directory />

    AllowOverride none

    Require all granted

         Header set Access-Control-Allow-Origin *

</Directory>

(3)重启http服务

 

如果是tomcat,比如spring MVC项目

创建一个过滤器,代码如下:

Java代码  

  1. package com.web.filter;  
  2.   
  3. import java.io.IOException;  
  4.   
  5. import javax.servlet.Filter;  
  6. import javax.servlet.FilterChain;  
  7. import javax.servlet.FilterConfig;  
  8. import javax.servlet.ServletException;  
  9. import javax.servlet.ServletRequest;  
  10. import javax.servlet.ServletResponse;  
  11. import javax.servlet.http.HttpServletResponse;  
  12.   
  13. import com.common.dict.Constant2;  
  14.   
  15. import oa.service.DictionaryParam;  
  16.   
  17. public class SimpleCORSFilter implements Filter{  
  18.   
  19.     @Override  
  20.     public void destroy() {  
  21.           
  22.     }  
  23.   
  24.     @Override  
  25.     public void doFilter(ServletRequest req, ServletResponse res,  
  26.             FilterChain chain) throws IOException, ServletException {  
  27.             HttpServletResponse response = (HttpServletResponse) res;  
  28.             response.setHeader("Access-Control-Allow-Origin", DictionaryParam.get(Constant2.DICTIONARY_GROUP_GLOBAL_SETTING, "AccessControlAllowOrigin"));  
  29.             response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");  
  30.             response.setHeader("Access-Control-Max-Age", "3600");  
  31.             response.setHeader("Access-Control-Allow-Headers", "x-requested-with");  
  32.             chain.doFilter(req, res);  
  33.           
  34.     }  
  35.   
  36.     @Override  
  37.     public void init(FilterConfig arg0) throws ServletException {  
  38.           
  39.     }  
  40.   
  41. }  

关键代码:response.setHeader("Access-Control-Allow-Origin", "*");

 修改web.xml,增加:

Xml代码  

  1. <filter>  
  2.       <filter-name>cors</filter-name>  
  3.       <filter-class>com.web.filter.SimpleCORSFilter</filter-class>  
  4.     </filter>  
  5.     <filter-mapping>  
  6.       <filter-name>cors</filter-name>  
  7.       <url-pattern>/*</url-pattern>  
  8.     </filter-mapping>  

 

这样服务器就支持ajax的跨域访问了.

时间: 2024-11-02 16:23:29

如何让服务器支持跨域呢?的相关文章

如果要用ajax跨域请求服务器数据,服务器是否要设置支持跨域

问题描述 如果要用ajax跨域请求服务器数据,服务器是否要设置支持跨域 如果要用ajax跨域请求服务器数据,服务器是否要设置支持跨域? 解决方案 是的,如果是跨域请求的话,服务器返回Json数据的格式也是不同的. 所以服务器也是需要支持跨域的. 如:服务器返回普通Json格式为(不跨域) { "code": "0", "content": "我是返回内容" } 那么Jsonp的返回格式则是(跨域) callback({ &qu

webapi支持跨域访问

写在前面 在实际应用中,跨域请求还是比较常见的,如何上接口直接支持跨域的访问呢? demo 场景项目A有个接口用来获取用户列表,现在项目b也有个功能需要加载用户列表.这两个项目在两个域名下,至少端口好不同.使用angularjs中的$http发起请求. using Newtonsoft.Json; using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Ne

让Apache 和nginx支持跨域访问

1,如何让Apache支持跨域访问呢? 步骤: 修改httpd.conf,windows中对应的目录是:C:\wamp\bin\apache\Apache2.4.4\conf\httpd.conf 把LoadModule headers_module modules/mod_headers.so 前面的注释删除 修改 改为: 即: <Directory /> AllowOverride none Require all granted Header set Access-Control-All

js判断请求的url是否可访问,支持跨域判断的实现方法_javascript技巧

如下所示: <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <meta name="keywords" content="js判断URL是否可访问" /> <t

WEB服务器的跨域攻击方法介绍

一直想说说跨域web攻击这一概念,先前积累了一些案例和经验,所以想写这么一篇文档让大家了解一下跨域web攻击,跨域web攻击指的是利用网站跨域安全设置缺陷进行的web攻击,有别于传统的攻击,跨域web攻击可以从网站某个不重要的业务直接攻击和影响核心业务. 传统的安全思维教会我们按资产.功能等需求划分核心业务,优先保护核心业务等,非核心业务的安全等级一般没有核心业务高,给我们错觉是非核心业务受到攻击的话,所造成损失不会很大,也不会影响到核心业务,所以让安全工作者了解跨域web攻击这一概念还是非常有

iframe自动适应高度几个实例(支持:跨域)

同域.子页面高度不会动态增加 这种情况最简单,直接通过脚本获取字页面实际高度,修改iframe元素高度即可.但有二点必须注意: 如果页面内有绝对定位或者没有清浮动的元素,情况有些复杂,不同浏览器处理结果不同,甚至包括Webkit内核的浏览器,具体请看这个Demo.所以你要么进行浏览器检测,要么用Math.max计算一个最大值,要么你想别的方法. iframe所包含页面可能非常大,需要很长的加载时间,为此直接计算高度的时候,很可能页面还没下载完,高度计算就会有问题.所以最好在iframe的onlo

Ajax异步(请求)提交类 支持跨域_AJAX相关

复制代码 代码如下: /**//* 异步请求类 作者:吾非无心 创建时间:2009.2 --------------------------------------------------------------------------------------------------------------------------------- 修改记录: 2009.4.27--添加 URL 检测功能,如果是"http://xxxx.xxx.xx.xx/.."这样的格式,使用系统提供的

支持跨域iframe高度随内容动态缩放自适应

iframe高度随页面内容自适应高度,当页面高度变动时iframe高度也自动变化 浏览器兼容:IE6++.Firefox全系列.Chrome全系列.(其他版本浏览器未做测试,期待你测试评论反馈以完善本文,谢谢) 同域环境下实现方法: 方法一:仅修改iframe父页面(iframeA.php),iframe子页面内容(iframeB.php)不用添加其他js或额外代码 iframe父页面(iframeA.php)添加代码如下:  代码如下 复制代码 <iframe width="100%&q

Ajax异步(请求)提交类 支持跨域

复制代码 代码如下: /**//* 异步请求类 作者:吾非无心 创建时间:2009.2 --------------------------------------------------------------------------------------------------------------------------------- 修改记录: 2009.4.27--添加 URL 检测功能,如果是"http://xxxx.xxx.xx.xx/.."这样的格式,使用系统提供的