`

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

    博客分类:
  • Java
阅读更多

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

如果服务器是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项目

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

package com.web.filter;

import java.io.IOException;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletResponse;

import com.common.dict.Constant2;

import oa.service.DictionaryParam;

public class SimpleCORSFilter implements Filter{

	@Override
	public void destroy() {
		
	}

	@Override
	public void doFilter(ServletRequest req, ServletResponse res,
			FilterChain chain) throws IOException, ServletException {
		 	HttpServletResponse response = (HttpServletResponse) res;
	        response.setHeader("Access-Control-Allow-Origin", DictionaryParam.get(Constant2.DICTIONARY_GROUP_GLOBAL_SETTING, "AccessControlAllowOrigin"));
	        response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");
	        response.setHeader("Access-Control-Max-Age", "3600");
	        response.setHeader("Access-Control-Allow-Headers", "x-requested-with");
	        chain.doFilter(req, res);
		
	}

	@Override
	public void init(FilterConfig arg0) throws ServletException {
		
	}

}

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

 修改web.xml,增加:

<filter>
      <filter-name>cors</filter-name>
      <filter-class>com.web.filter.SimpleCORSFilter</filter-class>
    </filter>
    <filter-mapping>
      <filter-name>cors</filter-name>
      <url-pattern>/*</url-pattern>
    </filter-mapping>

 

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

 

2
1
分享到:
评论
2 楼 hw1287789687 2017-05-30  
ipodao 写道
解决了我的问题,谢谢你。

能帮到你,我很高兴
1 楼 ipodao 2017-05-27  
解决了我的问题,谢谢你。

相关推荐

    服务支持跨域请求的配置

    ### 服务支持跨域请求的配置 在现代Web开发中,跨域资源共享(Cross-Origin Resource Sharing,简称CORS)是一项非常重要的技术。它允许浏览器安全地执行跨源HTTP请求,从而使得不同源之间的数据交互成为可能。下面...

    tomcat支持跨域jar.zip

    总结起来,"tomcat支持跨域jar.zip"是一个解决Tomcat服务器跨域问题的工具包,它可能包含了CORS Filter的配置和实现。通过合理的配置,开发者可以顺利地处理三维模型配置文件的跨域访问,提高开发效率和用户体验。

    什么是跨域?跨域解决方法.docx

    一、什么是跨域? 跨域是指一个域的 JavaScript 脚本和另外一个域的内容无法进行交互的现象。这是由于浏览器的同源策略限制所致。同源策略是一种约定,它是浏览器最核心也最基本的安全功能。如果缺少了同源策略,则...

    ARM32-Nginx服务,支持RTMP/HTTP-FLV推拉流,支持flv.js跨域拉流,支持web端跨域代理/上传文件

    “支持web端跨域代理/上传文件”表明Nginx不仅能够处理流媒体服务,还能够作为Web服务器,提供文件上传功能,并且可以配置为代理服务器,解决Web应用因同源策略导致的跨域问题。这在开发Web应用时非常有用,尤其是...

    signalR跨域及解决方案

    如果你不能在服务器端配置 CORS 或者需要支持更复杂的跨域场景,可以设置一个代理服务器,将客户端的请求转发到 SignalR 服务器。例如,使用 Nginx 或 Apache 作为反向代理服务器。 4. **IFrame 和 PostMessage:*...

    jquery跨域调用 js跨域调用

    1. 代理服务器:如果服务器不支持JSONP或CORS,可以通过在服务器上设置一个代理,将跨域请求转发到目标服务器。 2. HTML5的Window.postMessage:适用于两个窗口之间的跨域通信,如弹窗或iframe。 六、安全与性能...

    file协议导致的跨域问题以及解决方案.docx

    4. 使用热更新插件,例如 live server 插件,可以在本地开启一个服务器,解决跨域问题。 5. 使用 Node.js 开启一个服务器,例如使用 Express 框架,可以解决跨域问题。 同源策略是为了安全而设定的约定,ES6 模块...

    pdfjs 跨域预览文件(完整版t)

    2. **配置跨域**:为了在跨域环境中使用 PDF.js,你需要在服务器端设置 CORS 头部。例如,在 Apache 或 Nginx 的配置文件中,或者在你的后端框架(如 SSM,即 Spring、SpringMVC、MyBatis 的组合)中添加适当的响应...

    js跨域解决方案

    5. **WebSocket跨域**:WebSocket协议本身支持跨域,只要服务器允许,就可以建立长连接进行双向通信。这对于实时应用如聊天室、股票交易等非常有用。 6. **Window.name与Location.hash**:通过将数据存储在`window....

    跨域有几种解决方式?原理是什么?跨域.docx

    - **CORS**:如果对方服务器支持设置CORS响应头,可以通过协商使其添加`Access-Control-Allow-Origin`等字段,允许我们的站点访问其API。 - **JSONP**:如果API支持JSONP格式返回数据,则可以在前端构建一个`...

    Javascript跨域和Ajax跨域解决方案

    JavaScript跨域和Ajax跨域是Web开发中常见的问题,尤其在进行前后端分离或API调用时,由于浏览器的同源策略限制,不同域名、协议或端口的资源请求...在实际项目中,应根据具体需求和服务器支持情况选择合适的跨域策略。

    nginx跨域问题,解决多端口,多ip问题

    然而,在使用 Nginx 进行服务器管理时,经常会遇到跨域问题。跨域问题是指在不同的域名、端口或协议下,无法访问服务器资源的问题。解决跨域问题是 Nginx 服务器管理的关键所在。 一、前后端分离跨域问题 前后端...

    跨域上传文件,多服务器相互调用

    2. JSONP(JSON with Padding):这是一种早期解决跨域问题的方法,适用于只支持GET请求的旧版浏览器。它通过动态插入`&lt;script&gt;`标签来实现跨域通信,但不支持POST请求和文件上传。 3. formData与XMLHttpRequest:...

    tomcat跨域访问问题

    当Tomcat服务器返回的响应头中包含`Access-Control-Allow-Origin`字段,且其值与请求的源匹配时,浏览器才会允许跨域访问。 解决Tomcat的跨域问题有几种方法: 1. **修改web.xml配置**:在Tomcat的每个Web应用的...

    海康威视h5player.js 2.0版 跨域隔离

    跨域隔离是指在理想情况下,所有跨域请求都应由来源服务器进行明确审核,如果来源服务器未对资源提供审查,则数据不允许进入到访问者的浏览上下文(Browsing Context Group),保证他们不会受到Spectre攻击的影响。...

    配置服务端支持跨域所应用到的jar包

    本篇文章将详细介绍如何配置服务端来支持跨域,以及涉及到的jar包。 首先,我们需要理解什么是跨域。同源策略限制了JavaScript从一个源获取或操作另一个源的数据。在处理这种情况时,服务器端可以通过设置CORS...

    tomcat服务器跨域需要的CorsFilter jar包文件

    要实现Tomcat服务器的跨域支持,我们需要添加CorsFilter到服务器的配置中。以下是具体步骤: 1. **下载CorsFilter**:根据描述,你需要的文件是"tomcat跨域jar文包件",这个文件通常包含`org.apache.catalina....

    ajax跨域请求WebService.asmx

    6. **JSONP**:如果服务器不支持CORS,还可以考虑使用JSONP(JSON with Padding)方式来实现跨域。JSONP是一种利用`&lt;script&gt;`标签不受同源策略限制的特性,通过动态创建`&lt;script&gt;`标签,将服务端提供的回调函数名与...

    arcgis跨域.rar

    6. **Web服务器配置**:对于一些特定的Web服务器(如IIS、Apache等),还可以在服务器层面进行跨域配置,允许特定的请求源。 在压缩包"arcgis跨域.rar"中,可能包含了这些解决方案的具体步骤、示例代码或者配置文件...

    解决ajax跨域问题

    WebSocket也支持跨域,它是一种在单个TCP连接上进行全双工通信的协议。WebSocket API允许在服务器和客户端之间建立持久连接,从而实现双向通信。 在实际项目中,开发者需要根据具体情况选择合适的跨域解决方案。...

Global site tag (gtag.js) - Google Analytics