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

简介:

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

如果服务器是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的跨域访问了.

相关文章
|
小程序 Linux 程序员
如何配置frp到linux服务器和windows本地,服务端支持自启动
如何配置frp到linux服务器和windows本地,服务端支持自启动
830 0
如何配置frp到linux服务器和windows本地,服务端支持自启动
|
3月前
|
前端开发 应用服务中间件 API
"揭秘!面试官必问:你是如何巧妙绕过跨域难题的?前端代理VS服务器端CORS,哪个才是你的秘密武器?"
【8月更文挑战第21天】在软件开发中,尤其前后端分离架构下,跨域资源共享(CORS)是常见的挑战。主要解决方案有两种:一是服务器端配置CORS策略,通过设置响应头控制跨域访问权限,无需改动前端代码,增强安全性;二是前端代理转发,如使用Nginx或Webpack DevServer在开发环境中转发请求绕过同源策略,简化开发流程但不适用于生产环境。生产环境下应采用服务器端CORS策略以确保安全稳定。
50 0
|
5月前
|
JSON JavaScript 数据格式
详细解读CococCreator跨域访问资源服务器
详细解读CococCreator跨域访问资源服务器
59 0
|
6月前
|
JavaScript API
本地开发环境请求服务器接口跨域的问题(vue的问题)
本地开发环境请求服务器接口跨域的问题(vue的问题)
506 1
|
6月前
|
JavaScript API
解决Vue项目请求接口跨域的问题,配置Vue项目index.js代理请求服务器端接口
解决Vue项目请求接口跨域的问题,配置Vue项目index.js代理请求服务器端接口
解决Vue项目请求接口跨域的问题,配置Vue项目index.js代理请求服务器端接口
|
弹性计算 应用服务中间件 Apache
2核4g云服务器支持多少人同时在线?2核4G服务器并发数计算
阿里云服务器2核4g并发数是多少?支持多少人同时在线?
975 0
2核4g云服务器支持多少人同时在线?2核4G服务器并发数计算
|
应用服务中间件 nginx
记录一次艰难的云服务器部署前后端项目springBoot+mybatis+vue(两天解决的前后端跨域问题多种方式)...
记录一次艰难的云服务器部署前后端项目springBoot+mybatis+vue(两天解决的前后端跨域问题多种方式)...
131 0
|
前端开发 JavaScript Java
【React工作记录九十八】记录一次艰难的云服务器部署前后端项目springBoot+mybatis+vue(两天解决的前后端跨域问题多种方式)...
【React工作记录九十八】记录一次艰难的云服务器部署前后端项目springBoot+mybatis+vue(两天解决的前后端跨域问题多种方式)...
145 0
|
前端开发 应用服务中间件 nginx
【React工作记录九十八】记录一次艰难的云服务器部署前后端项目springBoot+mybatis+vue(两天解决的前后端跨域问题多种方式)...
【React工作记录九十八】记录一次艰难的云服务器部署前后端项目springBoot+mybatis+vue(两天解决的前后端跨域问题多种方式)...
71 0
|
前端开发 JavaScript Java
记录一次艰难的云服务器部署前后端项目springBoot+mybatis+vue(两天解决的前后端跨域问题多种方式)...
记录一次艰难的云服务器部署前后端项目springBoot+mybatis+vue(两天解决的前后端跨域问题多种方式)...
394 0